Entity framework 4 实体框架与转换

Entity framework 4 实体框架与转换,entity-framework-4,transactions,Entity Framework 4,Transactions,我们计划在asp.net web窗体中开发一个新的应用程序。我们正在使用实体框架(使用POCO类方法) 我们有表示层、业务逻辑层和数据访问层。我的问题是,如果在一个页面上,我们想做一些事务性工作,意味着向客户添加一些数据,添加一些与客户无关的其他数据,发送电子邮件e.t.c,那么我们如何在单个事务中做到这一点 或者我们应该在网页的代码后面启动事务?或者将这些数据传递给BLL中的某个客户方法,它将以事务方式完成所有这些工作?在这两种情况下,代码都不会松散耦合 当有不同的实体参与操作时,有人能告诉我

我们计划在asp.net web窗体中开发一个新的应用程序。我们正在使用实体框架(使用POCO类方法)

我们有表示层、业务逻辑层和数据访问层。我的问题是,如果在一个页面上,我们想做一些事务性工作,意味着向客户添加一些数据,添加一些与客户无关的其他数据,发送电子邮件e.t.c,那么我们如何在单个事务中做到这一点

或者我们应该在网页的代码后面启动事务?或者将这些数据传递给BLL中的某个客户方法,它将以事务方式完成所有这些工作?在这两种情况下,代码都不会松散耦合

当有不同的实体参与操作时,有人能告诉我进行事务性工作的最佳实践吗?

说明
SaveChanges
在内部使用事务,但如果要执行多个
SaveChanges
调用,则需要
TransactionScope
。如果未调用
scope.Complete()
(异常发生),则事务将回滚

样品 更多信息
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
     // add something to your context
     myDbContext.Add(...);
     // save changes
     myDbContext.SaveChanges();
     // commit changes 
     scope.Complete(); 
}