Entity framework 如果数据库2使用实体框架失败,则回滚数据库1中的更改
我有一个需求,我需要在两个数据库中创建用户,我能够做到这一点,但是,考虑到在db1中成功创建用户的用例,并且由于一些服务器错误,用户没有在db2中创建。我应该如何处理这个用例。EF6提供事务,但是,这些是否仅限于Sp?我应该如何处理这种情况 下面是我在保存更改时使用的代码:Entity framework 如果数据库2使用实体框架失败,则回滚数据库1中的更改,entity-framework,unit-of-work,Entity Framework,Unit Of Work,我有一个需求,我需要在两个数据库中创建用户,我能够做到这一点,但是,考虑到在db1中成功创建用户的用例,并且由于一些服务器错误,用户没有在db2中创建。我应该如何处理这个用例。EF6提供事务,但是,这些是否仅限于Sp?我应该如何处理这种情况 下面是我在保存更改时使用的代码: public void SaveChanges() { using (var scope = new TransactionScope(TransactionScopeOption.R
public void SaveChanges()
{
using (var scope = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
((IObjectContextAdapter)db1Context).ObjectContext.SaveChanges(SaveOptions.DetectChangesBeforeSave);
((IObjectContextAdapter)db2Context).ObjectContext.SaveChanges(SaveOptions.DetectChangesBeforeSave);
scope.Complete();
((IObjectContextAdapter)db1Context).ObjectContext.AcceptAllChanges();
((IObjectContextAdapter)db2Context).ObjectContext.AcceptAllChanges();
}
}
我的答案是。。。不要
根据实际使用的数据库,您应该使用类似SQL Server的复制。这会让数据库担心如何保持每个实例的一致性,因此您不必这样做。也许这会有所帮助:Thnx..将尝试一下