public void SomeMethod1()
{
using (TemplateEntities ctx = new TemplateEntities())
{
//do something in this ctx
}
}
public void SomeMethod2()
{
using (TemplateEntities ctx = new TemplateEntities())
{
//do something else in this ctx
}
}
public void SomeMethod()
{
using (TemplateEntities ctx = new TemplateEntities())
{
using (TransactionScope tran = new TransactionScope())
{
SomeMethod1();
SomeMethod2();
var itemToDelete= (from x in ctx.Xxx
where x.Id==1
select x).Single();
ctx.Xxx.DeleteObject(itemToDelete);
ctx.SaveChanges();
tran.Complete();
}
}
}
即使有更多的上下文,SomeMethod中会发生什么? 我正在使用POCO。关于实体框架和事务的问题
但是,如果我们正在谈论与一个数据库表是正确的我的例子? – gigi 2010-10-23 20:58:12
不,它仍然需要MSDTC。但是,当您管理自己的连接时,这不会成为问题。有关更多信息,请参见http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/189b2718-c2b0-4290-8517-3cd3da4314fc。 – 2010-10-23 21:45:43