繁体   English   中英

实体框架为空,使用 DB2 时不为空

[英]Entity Framework Is Null, Is Not Null Using DB2

我试过这个:

<pre>var query = this.context.PERFIL_ALERTA.Where(x => x.CodigoEmpresa == EmpresaId && x.IdAtividade == null);<code>

但是实体这样做:

SELECT 
CAST(NULL AS decimal(18,2)) AS C1, 
CAST(NULL AS decimal(18,2)) AS C2, 
CAST(NULL AS decimal(18,2)) AS C3, 
CAST(NULL AS varchar(1)) AS C4, 
CAST(NULL AS decimal(18,2)) AS C5, 
CAST(NULL AS decimal(18,2)) AS C6, 
CAST(NULL AS decimal(18,2)) AS C7, 
CAST(NULL AS decimal(18,2)) AS C8, 
CAST(NULL AS varchar(1)) AS C9, 
CAST(NULL AS timestamp) AS C10
FROM  ( SELECT CAST(1 AS int) AS X FROM SYSIBM.SYSDUMMY1 ) AS SingleRowTable1
WHERE CAST('t' AS boolean) = CAST('f' AS boolean)

并给我一个错误:

异常 -> 错误 [42846] [CLASS][DB2/NT64] SQL0461N 不能将数据类型为“SYSCLASS.VARCHAR”的值转换为类型“SYSCLASS.BOOLEAN”。

并在 DB2 中进行调试:

-- 在 355 毫秒内失败,错误为:ERROR [42846] [CLASS][DB2/NT64] SQL0461N 不能将数据类型为“SYSCLASS.VARCHAR”的值转换为类型“SYSCLASS.BOOLEAN”。

我在 DB2 表上有一个可为空的字段。 如何进行空比较?

在 sqlserver 上工作正常...但在 db2....

工作中的一位同事帮助了我。 我的地图错了。 字段 idAtividade 可以为空。 该关系需要是可选的。

this.HasRequired (T => t.ATIVIDADE)
                 .WithMany (T => t.PERFIL_ALERTAs)
                 .HasForeignKey (T => t.IdAtividade);

更正

this.HasOptional (T => t.ATIVIDADE)
.WithMany (T => t.PERFIL_ALERTAs)
.HasForeignKey (T => t.IdAtividade);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM