Вы можете использовать Entity Validatiion и проверять строки на предмет проверки при добавлении их в модель, а не сохранять изменения.
protected override System.Data.Entity.Validation.DbEntityValidationResult ValidateEntity(DbEntityEntry entityEntry, System.Collections.Generic.IDictionary<object, object> items)
{
if (entityEntry.Entity is Student)
{
if (entityEntry.CurrentValues.GetValue<string>("StudentName") == "")
{
var list = new List<System.Data.Entity.Validation.DbValidationError>();
list.Add(new System.Data.Entity.Validation.DbValidationError("StudentName", "StudentName is required"));
return new System.Data.Entity.Validation.DbEntityValidationResult(entityEntry, list);
}
}
return base.ValidateEntity(entityEntry, items);
}
Код от http://www.entityframeworktutorial.net/EntityFramework4.3/validate-entity-in-entity-framework.aspx
ОБНОВЛЕНИЕ: Существует также более простой способ заставить его работать с помощью DataAnnotations.
Вы можете пометить свойство вашей модели таким атрибутом, как
[Required]
public string UserName { get; set; }
И затем вы можете использовать эти строки для проверки модели.
var user = new User();
var context = new ValidationContext(user, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(user, context, results);
if (!isValid)
{
foreach (var validationResult in results)
{
Console.WriteLine(validationResult.ErrorMessage);
}
}
Этот сегмент кодаскопировано с https://odetocode.com/blogs/scott/archive/2011/06/29/manual-validation-with-data-annotations.aspx