gpt4 book ai didi

c# - Entity Framework 4.1 中带有 TransactionScope 的多个 dbcontext 的 SaveChanges()

转载 作者:行者123 更新时间:2023-11-30 14:34:34 27 4
gpt4 key购买 nike

我正在使用下面给出的 SaveChanges() 方法:

数据库 A

objAdbContext

数据库 B

objBdbContext

DB A 的更新表如下所示

public string SaveA()
{

//Some stuff

objAdbContext.SaveChanges();

string result=UpdateDatabaseB(some parameters)

//Some stuff

}


public string UpdateDatabaseB(some parameters)

{

//Some stuff

objBdbContext.SaveChanges();

return "Success";

}

这种情况数据库 B 没有得到更新。这是更新多个数据库的正确方法吗?

两者都是独立的数据库,在这种情况下如何实现TransactionScope?

最佳答案

试试这个:

using (TransactionScope scope = new TransactionScope())
{
// Save changes but maintain context1 current state.
context1.SaveChanges(SaveOptions.DetectChangesBeforeSave);

// Save changes but maintain context2 current state.
context2.SaveChanges(SaveOptions.DetectChangesBeforeSave);

// Commit succeeded since we got here, then completes the transaction.
scope.Complete();

// Now it is safe to update context state.
context1.AcceptAllChanges();
context2.AcceptAllChanges();
}

此示例取自此博​​客文章:

Managing Transactions with Entity Framework 4

关于c# - Entity Framework 4.1 中带有 TransactionScope 的多个 dbcontext 的 SaveChanges(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875302/

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