Есть ли способ проверить эту ошибку перед вызовом SaveChanges?Может быть, при добавлении сущности в контекст?
Да.Это возможно, вызвав этот метод GetValidationErrors()
на вашем DbContext
, как показано ниже, но вы получите результат ошибок проверки, только если вы используете атрибуты аннотаций данных в ваших классах сущностей
var validationResults = dbContext.GetValidationErrors();
validationResults
будет содержать коллекцию DbEntityValidationResult
, поэтому, если пусто, ваши отслеживаемые объекты действительны.Тогда вызов SaveChanges
сразу после этого не вызовет исключения о проверке данных, но вы все равно можете получить некоторые другие исключения, которые можно проверить только на стороне сервера, например, исключение параллелизма, исключение уникального или ссылочного ограничения и т. Д.