我需要在单个事务中保存到两个不同的 SQL Azure 联合数据库,以便在出现故障时回滚所有更改。现在,我有两个独立的代码块,它们彼此独立地进行交易。我尝试使用 TransactionScope,但显然 SQL Azure 不支持它。
using (EVENTContext dc = new EVENTContext(
GetConnectionString(1)))
{
string federationCmdText = @"USE FEDERATION [fed] ([dist] = '"+ GetDist(1) +"') WITH FILTERING = OFF, RESET";
((IObjectContextAdapter)dc).ObjectContext.Connection.Open();
dc.Database.ExecuteSqlCommand(federationCmdText);
dc.EVENTS.Add(e);
dc.SaveChanges();
}
using (EVENTContext dc = new EVENTContext(
GetConnectionString(2)))
{
string federationCmdText = @"USE FEDERATION [fed] ([dist] = '"+ GetDist(2) +"') WITH FILTERING = OFF, RESET";
((IObjectContextAdapter)dc).ObjectContext.Connection.Open();
dc.Database.ExecuteSqlCommand(federationCmdText);
dc.EVENTS.Add(e2);
dc.SaveChanges();
}
如何在单个事务中保存到多个数据库?我最近开始阅读有关工作单元的内容,但我不确定这是否是我需要的。