Entity Framework 在 SaveChanges 之前检查 DbUpdateException

Entity Framework check for DbUpdateException before SaveChanges

如果您尝试将长度为 500 的字符串保存到 Sql 服务器中的 nvarchar(255) 列中,您将得到 DbUpdateException

在调用 SaveChanges() 之前有什么方法可以检查这个错误吗?也许在将实体添加到上下文时?

Is there any way to check for this error before calling SaveChanges? Maybe when adding the entity to context?

是的。可以通过在您的实体 类

上调用此方法 GetValidationErrors() on your DbContext like below but you will get the validation errors result only if you make use of data annoations attributes
var validationResults = dbContext.GetValidationErrors();

validationResults 将包含 DbEntityValidationResult 的集合,因此如果为空,则您跟踪的实体有效。然后调用 SaveChanges 之后不会抛出有关数据验证的异常,但您仍然可以获得其他一些只能在服务器端检查的异常,例如并发异常、唯一或引用约束异常等