有人能告訴我TransactionScope如何保證跨多個數據庫的數據完整性的原則嗎?我想它首先將命令發送到數據庫,然後等待數據庫響應,然後向它們發送消息以應用先前發送的命令。但是,當發送這些應用消息時突然停止執行時,我們仍然可能會得到一個應用該命令的數據庫和一個沒有應用該命令的數據庫。任何人都可以對此有所瞭解嗎?TransactionScope如何保證跨多個數據庫的數據完整性?
編輯:
我想林問的是什麼,我可以依靠的TransactionScope在停電或突然停機的情況下寫入多個數據庫時,以保證數據的完整性。
謝謝,巴斯
實施例:
using(var scope=new TransactionScope())
{
using (var context = new FirstEntities())
{
context.AddToSomethingSet(new Something());
context.SaveChanges();
}
using (var context = new SecondEntities())
{
context.AddToSomethingElseSet(new SomethingElse());
context.SaveChanges();
}
scope.Complete();
}
順便說一句,你正在你的代碼中進行序列化的隔離事務。 – Henrik 2012-01-20 09:25:30