【发布时间】:2016-02-24 17:57:06
【问题描述】:
考虑下面给出的示例代码片段。
当我最后不写transaction.Complete(); 时,对数据库所做的更改是否会恢复?
using (var transaction = new System.Transactions.TransactionScope())
{
var database = new DatabaseContext();
var userA = database.Users.Find(1);
var userB = database.Users.Find(2);
userA.Name = "Admin";
database.SaveChanges();
userB.Age = 28;
database.SaveChanges();
transaction.Complete(); // Do changes done by database.saveChanges(); gets reverted if this statement is ommited ?
}
提前致谢。
【问题讨论】:
-
这真的很容易测试。注释掉这一行,看看会发生什么
-
为什么要问这个问题?注释掉该行应该证明回滚有效。你遇到过不同的行为吗?这背后还有其他问题吗?
-
有关完整说明,请查看 MSDN at the method。
标签: c# .net transactionscope