เช่น. ฉันมีรหัสดังกล่าว
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();
}
}
}
}
หากฉันไม่จำเป็นต้องเปลี่ยนบันทึก ฉันจะหลีกเลี่ยงการเริ่มธุรกรรม ซึ่งอาจอยู่ใน 90% ของทุกกรณี เป็นไปได้ไหมที่จะทำสิ่งดังกล่าว (เริ่มต้นและสิ้นสุดธุรกรรมหลายรายการภายในบริบทเดียว)
SaveChanges
ทำสิ่งนั้นให้คุณโดยอัตโนมัติ - person Ivan Stoev   schedule 17.05.2019SaveChanges
หลายครั้งในธุรกรรมเดียว บางครั้งก็หลีกเลี่ยงไม่ได้ - person Gert Arnold   schedule 17.05.2019