有人能告诉我 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();
}