带有EF6的IBM ERROR SQL0417N

时间:2015-01-13 19:44:46

标签: linq db2 entity-framework-6

使用EntityFramework.IBM.DB2(6.0.0)和:

http://www.microsoft.com/en-us/download/details.aspx?id=40762

http://www-01.ibm.com/support/docview.wss?uid=swg24038828

我创建了一个简单单元测试。

using (var ctx = new ClaimHighLightsContext())   
   {           
    var c = "some valid string";           
     var result = ctx.ClaimTab.FirstOrDefault(x => x.CLM_CSR_CLAIM_NBR == c);          
     Assert.IsNotNull(result);     
   }

抛出此错误:

System.Data.Entity.Core.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参阅内部异常---> IBM.Data.DB2.DB2Exception:

  

错误[42609] [IBM] [DB2] SQL0417N要准备的语句字符串   包含参数标记作为同一运算符的操作数。

但如果我写这个,我会得到预期的结果

using (var ctx = new ClaimHighLightsContext())
           {              
            var result = ctx.ClaimTab.FirstOrDefault(x => x.CLM_CSR_CLAIM_NBR == "some valid string");               
            Assert.IsNotNull(result);
           }

我正在使用此软件包:

<package id="EntityFramework" version="6.0.0" targetFramework="net45" /> 
<package id="EntityFramework.IBM.DB2" version="6.0.0" targetFramework="net45" />

请帮助

1 个答案:

答案 0 :(得分:4)

@juancarlos可以通过在Configuration.UseDatabaseNullSemantics = true课程中设置DbContext来解决此问题。

如果您需要其他信息,可以查看以下有关codeplex的讨论以及该设置的MSDN文档。

https://entityframework.codeplex.com/workitem/2115

https://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbcontextconfiguration.usedatabasenullsemantics(v=vs.113).aspx