Entity Framework проверяет исключение DbUpdateException перед сохранением - PullRequest
0 голосов
/ 13 июня 2018

Вы получите DbUpdateException, если попытаетесь сохранить строку длиной 500 в столбце на Sql Server, который является nvarchar (255).

Есть ли способ проверить эту ошибкуперед звонком SaveChanges()?Может быть, при добавлении объекта в контекст?

1 Ответ

0 голосов
/ 13 июня 2018

Есть ли способ проверить эту ошибку перед вызовом SaveChanges?Может быть, при добавлении сущности в контекст?

Да.Это возможно, вызвав этот метод GetValidationErrors() на вашем DbContext, как показано ниже, но вы получите результат ошибок проверки, только если вы используете атрибуты аннотаций данных в ваших классах сущностей

var validationResults = dbContext.GetValidationErrors();

validationResults будет содержать коллекцию DbEntityValidationResult, поэтому, если пусто, ваши отслеживаемые объекты действительны.Тогда вызов SaveChanges сразу после этого не вызовет исключения о проверке данных, но вы все равно можете получить некоторые другие исключения, которые можно проверить только на стороне сервера, например, исключение параллелизма, исключение уникального или ссылочного ограничения и т. Д.

...