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
之后不会抛出有关数据验证的异常,但您仍然可以获得其他一些只能在服务器端检查的异常,例如并发异常、唯一或引用约束异常等
如果您尝试将长度为 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
之后不会抛出有关数据验证的异常,但您仍然可以获得其他一些只能在服务器端检查的异常,例如并发异常、唯一或引用约束异常等