11
我需要做這樣的事情在我運行SQL事件探查器,但不能看到的begin tran事務上下文TransactionScope,在哪裏開始sql事務探查器?
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();
}
}
,是代碼塊是否正確?我錯過了什麼嗎?
也許你已經然後過濾掉?你也可以嘗試在事務內部創建ctx,只是爲了看看我改變了什麼。 –
爲什麼你使用這個代碼塊的事務範圍? SaveChanges'在內部使用事務,除非您使用多個事務資源或多次調用'SaveChanges',否則不需要它。 –
拉吉斯拉夫,這是爲了防止錯誤的數據,別人可以修改另一個方法收銀員的錢,如果它不是交易,這個信息將是錯誤 – Alexandre