entity-framework - Entity Framework 在 SaveChanges 之前检查 DbUpdateException

标签 entity-framework savechanges

你会得到一个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/

相关文章:

asp.net-mvc - Entity Framework + MVC 4 + Knockout.js AddView 模板?

c# - 如何使 LINQ 到多个表

php - 通过 id 查找元素并将其内容替换为 php

java - 我需要帮助更改 java 中的文本文件

c# - 将 TransactionScope 与 Entity Framework 6 结合使用

entity-framework - 检查 Entity Framework 中的插入或更新是否成功

c# - Entity Framework 不保存修改后的 child

c# - 我需要在动态 EF Filter 生成中调用 EntityFunctions 方法。如何?

wpf - Entity Framework 和 WPF 最佳实践

java - 确定对象是否已更改的最佳方法是什么?