在使用 Devart DotConnect for PostgreSQL 连接器查询实体框架实体的空字段时,我观察到一种奇怪的行为。
例如:如果我进行了以下 2 个测试:
var test1 = context.bloc.Where(x => x.id_bloc == null); var test2 = context.bloc.Where(x => x.id_bloc == 100);
检查 EF 自动生成的 SQL 查询时,我得到以下结果:
测试1的结果:
{选择
CAST(NULL AS int)作为“C1”,
CAST(NULL AS varchar)作为“C2”,
CAST(NULL AS varchar)作为“C3”,
CAST(NULL AS varchar)作为“C4”
从(选择 1 作为 X)作为“SingleRowTable1”
哪里真=假}
测试2的结果:
{选择
"Extent1".id_bloc,
"Extent1".numero,
"Extent1".nom,
"Extent1". 滴度
FROM “角色”.bloc AS “Extent1”
其中“Extent1”.id_bloc = 100}
查询空字段时的结果很奇怪......我期待的结果类似于测试 2 的结果,但带有"Extent1".id_bloc IS NULLWHERE 子句......
它是一个错误吗?如何有效地查询空字段?