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