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