0

我想为数据库中的每个用户将操作包装到事务中,并且不想使用 MSDTC。因此,我正在尝试手动打开一个连接以供所有要使用的事务使用。下面是我的代码草图:

using (var myContext = new Entities())
{
    myContext.Database.Connection.Open();

    var clientQuery = from client in myContext.CustomerMasters
                      where client.CustomerType == (int)Enums.CustomerType.Client
                      select client;

    var clientList = clientQuery.ToList();

    foreach (var client in clientList)
    {
        using (TransactionScope transaction = new TransactionScope())
        {
            FuncCall(myContext, client);
        }
    }
}

void FuncCall(Entities myContext, CustomerMasters client)
{
    // ERROR IS HERE: 
    var alreadyChargedQuery = <LINQ-QUERY>.FirstOrDefault();
}

运行此代码时出现以下异常:[System.Data.EntityException] = {“底层提供程序在打开时失败。”}

内部异常:InnerException = {“分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问。”}

非常感激任何的帮助。

4

0 回答 0