在使用 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 NULL
WHERE 子句......
它是一个错误吗?如何有效地查询空字段?