我正在使用SaveChanges()
方法,如下所示:
objAdbContext
的 A
数据库objBdbContext
B
更新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?
答案 0 :(得分:6)
试试这个:
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();
}
此示例摘自此博客文章: