TransactionScope,在sql profiler上开始事务?

我需要在事务上下文中做这样的事情

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(); } } 

我正在运行sql profiler但是看不到begin tran,那段代码是否正确? 我错过了什么吗?

就像@Marc在他的评论中所说,消息可能被过滤掉了。 您只会在默认配置文件中获取T-SQL事务消息,而不是直接使用API​​发送的事务消息(如TransactionScope所做)。

在SQL Server Profiler中,转到跟踪事件选择并选中“显示所有事件”复选框。 在底部是一个“交易”类别,它应该给你你需要的东西。 具体来说,以TM:开头的事件TM: