给出如下查询:
var myThingy =>
(from rg in _repository.GetQueryable<TheThing>()
where rg.Id == someId
select rg);
var myThingysId =>
(from rg in _repository.GetQueryable<TheThing>()
where rg.Id == someId
select rg.Id);
在第一个中,我要求完整的TheThingy,在第二个中,仅要求其ID。
我想知道的是它们都将产生相同的SQL查询吗?
答案 0 :(得分:3)
Linq在第一种情况下返回整个数据源(所有列)-
Linq代码:
from t in Persons select t
生成的SQL:
SELECT [t0].[PersonID], [t0].[FirstName], [t0].[LastName] FROM [Person] AS [t0]
仅在第二种情况下返回指定的列-
Linq代码:
from t in Persons select new {t.PersonID}
生成的SQL:
SELECT [t0].[PersonID] FROM [Person] AS [t0]
答案 1 :(得分:3)