如果在保存時有任何異常,下面的代碼是否會回滾更改?EntityFramework Transaction - 保存到多個表
using (SampleEntities context = new SampleEntities())
{
//Code Omitted
context.EmpPercAdjustments.AddRange(pp);
context.SampleJobs.AddRange(sampleJobs);
context.SaveChanges();
}
或者
我需要使用事務?
using (SampleEntities context = new SampleEntities())
{
//Code Omitted
using (System.Data.Entity.DbContextTransaction tranc = context.Database.BeginTransaction())
{
try
{
context.EmpPercAdjustments.AddRange(pp);
context.SampleJobs.AddRange(sampleJobs);
context.SaveChanges();
tranc.Commit();
}
catch (Exception ee)
{
tranc.Rollback();
}
}
}
使用其他的優點嗎?
你試過了嗎? –
@CallumLinington是的,我試過了。看起來像兩個代碼回滾,如果有任何異常。 – ElectricRouge
@CallumLinington如果第一個表中的數據成功保存並且在第一個示例中保存到第二個表時發生異常,該怎麼辦?我如何測試這種情況? – ElectricRouge