TransactionScope,其中是sql分析器上的开始事务

本文关键字:开始 事务 分析器 sql TransactionScope | 更新日期: 2023-09-27 18:01:42

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

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分析器,但无法看到开始转换,是代码块正确吗?我错过什么了吗?

TransactionScope,其中是sql分析器上的开始事务

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

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