gpt4 book ai didi

entity-framework - Entity Framework - 如果 SaveChanges 失败并且我不想进行某些更改该怎么办?

转载 作者:行者123 更新时间:2023-12-04 08:32:03 26 4
gpt4 key购买 nike

我想我遇到了一个常见问题:
我想尝试向数据库中插入一个对象。如果违反了主键,那么我想中止插入。 (这是一个例子,这个问题确实适用于任何类型的错误和任何 CRUD 操作)

如何放弃对 EF 上下文所做的更改?

每次出现问题时我都无法重新创建它。

附注。我知道也许我可以检查一切是否正常,例如。通过查询数据库,但我不喜欢这个想法。由于某种原因,数据库约束存在,这样它更快,我必须编写更少的代码。

最佳答案

您可以从 ObjectContext 中分离插入的实体.您也可以使用 ObjectStateManager及其方法 GetObjectStateEntries .在 ObjectStateEntry你可以修改它的状态。

问题是您没有以预期的方式使用技术:

I can't afford recreating it every time something goes wrong.



你当然应该这样做,因为你的代码不能防止这种情况。

PS. I know that perhaps I could check if everything is ok eg. by querying the db, but I don't like the idea. Db constraints are there for some reason and this way it's faster and I have to write less code.



是的,您确实应该检查一切是否正常。调用数据库来“验证”您的数据是 DBA 真正喜欢的(讽刺)。在您调用 SaveChanges 之前,您有责任尽可能提高数据的有效性。 .我可以想象,许多高级开发人员/团队负责人根本不会通过他们的代码审查来传递您的代码。顺便说一句。在大多数情况下,由于进程间或网络通信,它不会更快。

关于entity-framework - Entity Framework - 如果 SaveChanges 失败并且我不想进行某些更改该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809809/

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