假设,我有一个更新大量表的操作。 E.g。
public action Save()
{
Employee Emp = new Employee();
Emp.Name = "Test";
db.Employees.Add(emp);
db.SaveChanges();
Job job = new Job();
Job.Name = "Test";
db.Jobs.Add(job);
db.SaveChanges();
Status status = new Status();
status.Name = "Test";
db.Status.Add(status);
db.SaveChanges();
}
首先,我知道我应该只调用db.SaveChanges()
一次,但我在谈论复杂的情况。或者我应DbContextTransaction
,以便commit
或rollback
次交易。
假设,我遵循我的代码方法并且第二个查询中存在任何问题,那么第一个查询事务将不是rollback
,并且第三个查询将不会被执行。
我只是想知道是否还有其他方法,除了上面提到的那两个方法,如果在任何查询中没有错误就执行所有方法,否则不执行任何查询。
答案 0 :(得分:0)
仅使用一个SaveChanges()
,如下所示。如果它成功,它将更新所有表..如果它失败了,那么它将全部失败并回滚。可能你知道它。但是你能告诉我,你需要在你的问题中指明的确切的现实生活情况吗?
public action Save()
{
Employee Emp = new Employee();
Emp.Name = "Test";
db.Employees.Add(emp);
Job job = new Job();
Job.Name = "Test";
db.Jobs.Add(job);
Status status = new Status();
status.Name = "Test";
db.Status.Add(status);
db.SaveChanges();
}