你会得到一个DbUpdateException
如果您尝试将长度为 500 的字符串保存到 Sql Server 中的列中,该列是 nvarchar(255)。
在调用 SaveChanges()
之前有什么方法可以检查此错误吗? ?也许在将实体添加到上下文时?
最佳答案
Is there any way to check for this error before calling SaveChanges? Maybe when adding the entity to context?
是的。可以通过调用此方法
GetValidationErrors()
在您的 DbContext
上如下所示,但只有使用 data annoations attributes 才会得到验证错误结果在您的实体类上var validationResults = dbContext.GetValidationErrors();
validationResults
将包含 DbEntityValidationResult
的集合所以如果为空,那么您跟踪的实体是有效的。然后调用SaveChanges
之后不会引发有关数据验证的异常,但您仍然可以获得一些只能在服务器端检查的其他异常,例如并发异常、唯一性或引用约束异常等。
关于entity-framework - Entity Framework 在 SaveChanges 之前检查 DbUpdateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834908/