gpt4 book ai didi

c# - 使用 context.SaveChanges() == 0 来测试操作是否成功

转载 作者:行者123 更新时间:2023-11-30 22:10:40 25 4
gpt4 key购买 nike

我有一个使用 EF5 db-first 进行数据访问的 ASP.NET MVC3 项目;我的前任建立的模式是引入以下更新/删除操作检查:

if (context.SaveChanges() == 0)
throw new SqlExecutionException("...");

我最近意识到这种方法在使用未更改的数据更新现有数据时会失败,例如当用户打开一个窗口来编辑内容并按“确定”而不实际更改任何内容时;然后更改的记录数为 0,抛出异常,这是错误的。

环顾四周,我开始意识到这种检查的目的是错误的:如果记录在从数据库中拉出后被销毁,EF 将抛出 DataException 的子类型来发出信号,我想不出此检查存在的任何其他原因。我的前任脱节了,因此我的问题是:我可以安全地从我的代码中清除这些检查,并在更高级别上用 DataExceptions 过滤器补充它们吗?

最佳答案

是的,这是 C++ 时代的模式。如果存在违反数据库约束的情况,EF 或其他 ORM 将为您提供良好的错误消息。

关于c# - 使用 context.SaveChanges() == 0 来测试操作是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20701271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com