【发布时间】:2018-01-27 03:46:47
【问题描述】:
我在执行这段代码时遇到以下错误:
private bool _updateList(SysInfo _sysInfo, List<pList> _pList)
{
try
{
foreach (var p in _pList)
{
_context.spUpdatePListApprovalFlow(p.countryID, _sysInfo.User.JobRoleID, p.src, p.id, p.status, _sysInfo.User.Username);
}
return true;
}
catch (Exception ex) //debug only
{
throw; //throws error to the main try catch
}
}
错误
无法执行操作,因为 OLE DB 提供程序“MSDASQL” 对于链接服务器“AS400_LINKEDSRV”,无法开始分布式 交易。
但是,当我在 SQL Management Studio 中运行存储过程时,一切正常:
exec [dbo].[spUpdatePListApprovalFlow]
@CountryID = 123456,
@UserTypeID = 23456,
@Src = 1,
@Id = '123456789',
@Status = 30,
@Username = 'username'
我已经厌倦了寻找答案没有任何效果......我尝试过的几件事:
- 设置事务隔离级别读取未提交
- 在存储过程中插入多个事务
这个 sp 上有 2 个子存储过程。一个写入应用程序数据库的表,另一个更新 as400 中的表。
【问题讨论】:
标签: c# sql-server entity-framework stored-procedures ibm-midrange