保存中に例外が発生した場合、以下のコードで変更がロールバックされますか?EntityFrameworkトランザクション - 複数のテーブルに保存
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
@ CallallLinington最初のテーブルでデータが正常に保存され、最初の例で2番目のテーブルに保存中に例外が発生した場合はどうなりますか?どのように私はそのシナリオをテストできますか? – ElectricRouge