带有 EF6 的 IBM 错误 SQL0417N
IBM ERROR SQL0417N with EF6
使用 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:
ERROR [42609] [IBM][DB2] SQL0417N A statement string to be prepared
contains parameter markers as the operands of the same operator.
但是如果我这样写我会得到预期的结果 :
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" />
任何帮助请
@juancarlos 这可以通过在 DbContext
class 中设置 Configuration.UseDatabaseNullSemantics = true
来解决。
如果您需要更多信息,可以查看以下关于 codeplex 的讨论以及有关设置的 MSDN 文档。
使用 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:
ERROR [42609] [IBM][DB2] SQL0417N A statement string to be prepared contains parameter markers as the operands of the same operator.
但是如果我这样写我会得到预期的结果 :
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" />
任何帮助请
@juancarlos 这可以通过在 DbContext
class 中设置 Configuration.UseDatabaseNullSemantics = true
来解决。
如果您需要更多信息,可以查看以下关于 codeplex 的讨论以及有关设置的 MSDN 文档。