有人能告诉我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