实体框架SELECT 1 AS C1

Jon*_*way 12 .net entity-framework

好吧,可能是一个非常愚蠢的问题,但为什么实体框架生成的查询在开头包含"SELECT 1 AS C1"?这个是来做什么的?例如,我生成了以下内容:

SELECT 
1 AS C1, 
"Extent1".MY_ID AS MY_ID
FROM MYTABLE "Extent1"
WHERE 'test1' = "Extent1".MY_ID
Run Code Online (Sandbox Code Playgroud)

如果我手动写这个,我会做这样的事情:

SELECT 
MY_ID
FROM MYTABLE
WHERE 'test1' = MY_ID
Run Code Online (Sandbox Code Playgroud)

谢谢

Cra*_*ntz 5

不幸的是,并不是所有的桌子都有 PK。并非所有预测都包含 PK。允许1 as C1EF 区分空表和仅选择可为空的字段。请记住,这可以在子查询或派生查询中,因此查看返回的行数并不一定能回答这个问题。

  • 您能否澄清一下 1 as C1 如何帮助区分空表和仅选择可为空的字段?例如,如果可能的话,我想我知道每件事的含义,但我不确定它们在这种情况下如何相关。 (4认同)