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