Например. у меня такой код
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