Обработка исключения Entity Framework
Что бы отловить исключения при опрециях с контекстом Entity Framework 6, недостаочно блока типа:
try{}cache(Exception ex){}
Нужно отловить конкретное исключение:
public string SomeAction(string name)
{
string result = string.Empty;
try
{
result = insuranceCompanyService.Create(name);
}
catch (DbEntityValidationException ex)
{
result = ex.EntityValidationErrors.LastOrDefault(eve => eve != null)?
.ValidationErrors
.LastOrDefault(ve => ve.PropertyName == "Name")
?.ErrorMessage;
}
return result;
}
Почему-то, попытка отловить Exception оканчивается неудачей. Как впрочем и иные опробованные мной исключения. Ошибки добавляются в коллекции, отсюда и вызов LastOrDefault.