In Entity Framework 4.1+ we would validate entities before sending them to the database. See Entity Framework Validation to read more about it.

We don’t perform validation in EF Core, but there is a quick way to add at least some of it back. You can override SaveChanges and use the Validator. Here is some code.

class MyContext : DbContext
{
    public override int SaveChanges()
    {
        var entities = from e in ChangeTracker.Entries()
                       where e.State == EntityState.Added
                           || e.State == EntityState.Modified
                       select e.Entity;
        foreach (var entity in entities)
        {
            var validationContext = new ValidationContext(entity);
            Validator.ValidateObject(
                entity,
                validationContext,
                validateAllProperties: true);
        }

        return base.SaveChanges();
    }
}

Now, when SaveChanges is called, any ValidationAttribute (e.g. [Required] and [StringLength]) or IValidatableObject on your entity type classes will be checked before sending the INSERT or UPDATE statements to the database.