小编Big*_*Dog的帖子

LINQ to Entities生成错误的SQL

我正在过滤IQueryable以返回将UserId(可空int)字段设置为null的所有实体.查询生成错误的SQL,因此失败 - 语句如下 -

var filtered = certificates.Where(c => !c.UserId.HasValue).Select(c => c.SubjectName);
Run Code Online (Sandbox Code Playgroud)

并生成的SQL是 -

SELECT 
CAST(NULL AS varchar(1)) AS [C1], 
CAST(NULL AS int) AS [C2], 
CAST(NULL AS datetime2) AS [C3], 
CAST(NULL AS datetime2) AS [C4], 
CAST(NULL AS bit) AS [C5], 
CAST(NULL AS datetime2) AS [C6], 
CAST(NULL AS int) AS [C7]
FROM  ( SELECT 1 AS X ) AS [SingleRowTable1]
WHERE 1 = 0
Run Code Online (Sandbox Code Playgroud)

任何想法WTF都在继续吗?这个想法很简单我只想返回字段UserId为false的所有行.UserId可以为空,被查询的表有三行与描述的条件匹配,但LINQ查询返回0.

谢谢!

linq null entity-framework

25
推荐指数
2
解决办法
3392
查看次数

标签 统计

entity-framework ×1

linq ×1

null ×1