Entity Framework 为空,使用 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)

然后给我一个错误:

exception -> ERROR [42846] [CLASS][DB2/NT64] SQL0461N A value with data type "SYSCLASS.VARCHAR" cannot be CAST to type "SYSCLASS.BOOLEAN".

and on debug in DB2:

-- Failed in 355 ms with error: ERROR [42846] [CLASS][DB2/NT64] SQL0461N A value with data type "SYSCLASS.VARCHAR" cannot be CAST to type "SYSCLASS.BOOLEAN".

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

在 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);