birbirine bağlantılı tablolarda arka arka ya veri kaydederken, aradaki bir tablonun hata vermesi büyük sorun oluşturabiliyor,
örneğin öğrenci notları giriyorsunuz sayfada tek seferde tüm notları post ettiniz, 4. öğrencinin notonu 80 yerine 8o göndediniz, bu durumda 4. kayıdı yaparken hata oluşacaktır. ilk üç öğrenci kaydedilmiş sonrası kaydolmamış olacaktır. gidip manuel olarak silmeniz gerekecek. böyle bir durumda geri alma işlemi (roll back) yapbilmek için transaction scope methodu oluşturuldu.
1. kullanım
using (var db = new dbContext())
{
using (var transaction = db.Database.BeginTransaction())
{
foreach(nar not in Notes)
{
db.notlar.Add(not);
db.SaveChanges();
}
transaction.Commit();
}
}
2.kullanım
using (var transaction = new TransactioScope() )
{
using (var db = new dbContext())
{
foreach(nar not in Notes)
{
db.notlar.Add(not);
db.SaveChanges();
}
transaction.Complete();
}
}