Entity framework 实体框架中的交易与NHibernate

Entity framework 实体框架中的交易与NHibernate,entity-framework,nhibernate,Entity Framework,Nhibernate,在使用NHibernate很长一段时间后,我现在正在学习实体框架。在NHibernate中,对于每个ISession实例,我使用ISession.BeginTransaction实例化了一个数据库事务。在实体框架中,如何实现每个上下文一个事务的相同效果?ISession并不严格对应于nHibernate中的数据库事务,但它确实内置了一个隐式事务。您可以在此处看到更多信息: 在实体框架中,当您调用SaveChanges时,事务会隐式启动,您可以在 要在实体框架中拥有显式事务,请在EntityCon

在使用NHibernate很长一段时间后,我现在正在学习实体框架。在NHibernate中,对于每个ISession实例,我使用ISession.BeginTransaction实例化了一个数据库事务。在实体框架中,如何实现每个上下文一个事务的相同效果?

ISession并不严格对应于nHibernate中的数据库事务,但它确实内置了一个隐式事务。您可以在此处看到更多信息:

在实体框架中,当您调用SaveChanges时,事务会隐式启动,您可以在

要在实体框架中拥有显式事务,请在EntityConnection上使用TransactionScope或BeginTransaction

最简单的方法是像这样使用TransactionScope:

using (TransactionScope tran = new TransactionScope()){
    context.SaveChanges();
    //Do more work with this or another context
    context.SaveChanges();
    tran.Complete();
    //Or alternatively don't call Complete and because of the using block Dispose on tran will be 
    //called causing an Rollback
}

我检查了我的代码,你对NHibernate的看法是对的,所以我澄清了我的问题。请提供一些关于EF的示例代码。我修改了我的答案,加入了使用TransactionScope的示例