我在BLL中使用TransactionScope
。我有数据访问层的存储库类,每个crud创建自己的Context
。这会有用吗?
在Bll:
using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
rep.addItme(Myentity);
rep.updateItme(MyAnotherEntity);
scope.Complete();
}
在DataAccess中:
class rep
{
void addItmem(Entity entity)
{
using(var context=new MydbContext)
{
//---state is set here
context.Entity.add(entity);
context.SaveChanges();
}
}
void updateItem(Entity entity)
{
using(var context=new MydbContext)
{
//--state is set here
context.Entity.add(entity);
context.SaveChanges();
}
}
答案 0 :(得分:1)
在TransactionScope的范围(括号)内实例化的所有DbContext将自动注册到TransactionScope的内部事务中,默认情况下它是Ambient事务。所以是的它应该有用。