实体框架SELECT 1 AS C1

时间:2010-07-14 08:21:12

标签: .net entity-framework

好的,可能是一个真的愚蠢的问题,但为什么Entity Framework生成的查询在开头包含“SELECT 1 AS C1”?这个是来做什么的?例如,我生成了以下内容:

SELECT 
1 AS C1, 
"Extent1".MY_ID AS MY_ID
FROM MYTABLE "Extent1"
WHERE 'test1' = "Extent1".MY_ID

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

SELECT 
MY_ID
FROM MYTABLE
WHERE 'test1' = MY_ID

由于

1 个答案:

答案 0 :(得分:4)

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