Misalnya. Saya punya kode seperti itu
using (AccountingEntities ent = new AccountingEntities())
{
//just to read record
var recs = ent.Payments.Where(pp => pp.PaymentId == 123);
foreach (p in recs)
{
if (p.Status == 1)
{
using (var dbContextTransaction = ent.Database.BeginTransaction())
{
var someotherrecs = ent.SomeTable.Where(s => s.PaymentId == 456);
foreach (var rec in someotherrecs)
{
rec.Status = 2;
}
ent.SaveChanges();
dbContextTransaction.Commit();
}
}
}
}
Jika saya tidak perlu mengubah catatan, saya akan menghindari memulai transaksi, mungkin dalam 90% dari semua kasus. Bolehkah melakukan hal-hal seperti itu (memulai dan menyelesaikan banyak transaksi dalam satu konteks)?
SaveChanges
melakukannya secara otomatis untuk Anda. - person Ivan Stoev   schedule 17.05.2019SaveChanges
panggilan dalam satu transaksi. Terkadang hal itu tidak bisa dihindari. - person Gert Arnold   schedule 17.05.2019