EF TransactionScope和手动打开/关闭连接异常

时间:2013-07-09 14:53:15

标签: c# entity-framework-5

我想将操作包装到数据库中的每个用户的事务中,并且不想使用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以进行网络访问。”}

非常感谢任何帮助。

0 个答案:

没有答案