i sql profiler koşuyorum ama tran başlamak bkz edemez bir işlem bağlamındaTransactionScope, sql profiler üzerinde işlem başlatılır nerede?
using(var context = new Ctx())
{
using (TransactionScope tran = new TransactionScope())
{
decimal debit = 10M;
int id = 1;
var data = context.Cashier
.Where(w => w.ID == id)
.Select(s => new{ s.Money })
.Single();
Cashier cashier = new Cashier(){ ID = id };
context.Cashier.Attach(cashier);
cashier.Money = data.Money - debit;
context.Entry(cashier).Property(p => p.Money).IsModified = true;
context.SaveChanges(SaveOptions.None);
tran.Complete();
}
}
üzerine böyle bir şey yapmak gerekir, o kod bloğu doğrudur? Bir şey mi eksik?
Muhtemelen filtre uyguladınız mı? İşlemin içinde ctx oluşturulmasını da deneyebilirsiniz, sadece bir şeyi değiştirdiğimi görmek için. –
Bu kod bloğu için neden işlem kapsamı kullanıyorsunuz? 'SaveChanges', eğer birden fazla işlem kaynağı kullanmıyorsanız ya da ihtiyacınız olmadığında defalarca 'SaveChanges' çağırıyorsanız, bunu tanımlamıyorsanız dahili olarak işlemi kullanır. –
Ladislav, bu yanlış verileri önlemek için, başkasının başka bir yöntemle kasiyer parasını değiştirebilir, eğer işlem yapmıyorsa, bu bilgi yanlış olacak – Alexandre