Linq 带有EF6的IBM错误SQL0417N

Linq 带有EF6的IBM错误SQL0417N,linq,db2,entity-framework-6,Linq,Db2,Entity Framework 6,使用EntityFramework.IBM.DB2 6.0.0和: 我创建了一个简单的单元测试 抛出此错误: System.Data.Entity.Core.EntityCommandExecutionException:执行命令定义时出错。有关详细信息,请参见内部异常。-->IBM.Data.DB2.DB2Exception: 错误[42609][IBM][DB2]SQL0417N要准备的语句字符串 包含参数标记作为同一运算符的操作数 但如果我写下这篇文章,我会得到预期的结果: 我将此软件包用

使用EntityFramework.IBM.DB2 6.0.0和:

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

抛出此错误:

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

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

但如果我写下这篇文章,我会得到预期的结果:

我将此软件包用于:


任何帮助都可以通过在DbContext类中设置Configuration.UseDatabaseNullSemantics=true来解决

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


@juancarlos这可以通过在DbContext类中设置Configuration.UseDatabaseNullSemantics=true来解决

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


该错误意味着FirstOrDefault调用转换为包含非类型化参数标记的SQL查询,如…WHERE?=?因此,DB2无法确定要在该比较中使用的数据类型。我没有Linq的经验,但我怀疑ClaimTab的表到实体映射不正确,或者CLM_CSR_CLAIM_NBR不是字符串。同一个实体映射正在使用entity Framework 5,我刚刚更新到EF6。错误意味着FirstOrDefault调用转换为包含非类型化参数标记的SQL查询,如…WHERE?=?因此,DB2无法确定要在该比较中使用的数据类型。我没有使用Linq的经验,但我怀疑ClaimTab的表到实体映射不正确,或者CLM_CSR_CLAIM_NBR不是字符串。同一个实体映射用于entity Framework 5,我刚刚更新到Ef6
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);     
   }
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" />