更新iSeries表时出现DB2 .NET数据提供程序错误

时间:2013-02-18 10:37:57

标签: entity-framework-4 db2 ibm-midrange db2-400

我有一个奇怪的问题。在更新AS400表时,我收到以下错误

  

ERROR [55019] [IBM] [AS] SQL7008N REXX变量'<表名>'包含不一致的数据。

相同的代码在MSSQL 2008上完美运行

在互联网上搜索后,我发现当我更新AS400上的Non-journaled表时会出现此问题

我必须为该表启用journaling。这不是解决方案,因为我无法访问AS400服务器。

互联网上提到的解决方法是再次向NOT NULL等查询添加INSERT,UPDATE, DELETE子句,这在我的情况下是不可能的,因为我没有直接执行查询而是使用DBContext进行查询相同。

另一种解决方法是将isolationlevel/commitmode设置为NOCOMMIT or 32。我尝试在网络配置中同时设置但未收到错误System.ArgumentException: Invalid argument和异常Entity Exception: The underlying provider failed on ConnectionString.

所以问题很简单怎么办?

1 个答案:

答案 0 :(得分:0)

尝试设置DefaultIsolationLevel:

iDB2Connection cn = new iDB2Connection();
cn.ConnectionString = "DataSource=myiSeries; DefaultIsolationLevel=Chaos;";

虽然陈旧,但Redbook有一些很好的信息。