具有相同上下文的TransactionScope
本文关键字:TransactionScope 上下文 | 更新日期: 2023-09-27 18:27:42
我可以为事务编写这样的EntityFramework代码吗:
using(var trans = new TransactionScope())
{
using(var context1 = new MyDbContext())
{
context1.AddEntity(...);
context1.SaveChanges();
}
using(var context2 = new MyDbContext())
{
context2.UpdateEntity(...);
context2.SaveChanges();
}
trans.Complete();
}
我想实现的是将以上两个操作作为一个单元(这只是一个演示,在实际情况下,这两个操作被不同的服务分开,所以它们不能重用上下文),它们中的任何一个失败都会回滚。
以上代码足够吗?
在编写示例时,yes会起作用。
在你的问题中,你提到
在实际情况下,这两者被不同的服务分开,因此
这取决于您所指的服务类型。如果您指的是WCF服务,那么您还需要正确配置WCF服务。请参阅此处和/或此处了解更多信息。