gpt4 book ai didi

c# - Entity Framework 如何处理事务?

转载 作者:太空狗 更新时间:2023-10-29 18:33:05 24 4
gpt4 key购买 nike

当您在上下文中调用 SaveChanges 时, Entity Framework 是否使用事务?有没有办法完全关闭交易,或者让某个实体选择退出交易?

AdventureWorksEntities db = new AdventureWorksEntities();

Product p1 = new Product();
// ...

Product p2 = new Product();
// set invalid data

db.Products.AddObject(p1);
db.Products.AddObject(p2);

// what happens when I call this - does it roll back everything?
// can i tell p2 not to participate in the transaction?
db.SaveChanges();

最佳答案

,EF4 将创建一个新事务(如果尚不存在)。见

http://msdn.microsoft.com/en-us/library/bb896325.aspx

When you call SaveChanges, if a current transaction exists, the Entity Framework uses this transaction for operations against the data source. Otherwise, it creates a new transaction for the operation. You can define transactions by using EntityTransaction, Transaction, or TransactionScope.

,没有办法让单个实体免于交易。

不确定您的第三个问题 - 关于您是否可以完全关闭事务,但我猜测不能基于以上摘录。

我知道这不是您想听到的答案,但如果您希望无论 P1 是否成功都保存 P2,则需要将 P2 保存到不同对象上下文中。 p>

关于c# - Entity Framework 如何处理事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111175/

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