首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在LINQ中仅选择一列

在LINQ中仅选择一列
EN

Stack Overflow用户
提问于 2013-03-29 03:43:40
回答 4查看 86.7K关注 0票数 29

EntityModel的定义是: Personnel有一个国家/地区的链接

当在LinqPad中执行这段代码时,我看到在第一个查询中生成的SQL没有优化(所有字段都被返回)?我在这里遗漏了什么或者做错了什么?

查询1 LINQ

代码语言:javascript
复制
var Country = Countries.FirstOrDefault(o => o.Id == 100000581);
var personnelIds = Country.Personnels.Select(p => p.Id).ToArray();
personnelIds.Dump();

查询%1 SQL

代码语言:javascript
复制
exec sp_executesql N'SELECT [t0].[Id], [t0].[Version], [t0].[Identifier], [t0].[Name], , [t0].[UpdatedBy] FROM [Personnel] AS [t0] WHERE [t0].[Country_Id] = @p0',N'@p0 bigint',@p0=100000581

查询2 LINQ

代码语言:javascript
复制
var Country = Countries.FirstOrDefault(o => o.Id == 100000581);
var personnelIds2 = Personnels.Where(p => p.Country == Country).Select(p => p.Id).ToArray();
personnelIds2.Dump();

查询2 SQL

代码语言:javascript
复制
exec sp_executesql N'SELECT [t0].[Id] FROM [Personnel] AS [t0] WHERE [t0].[Country_Id] = @p0',N'@p0 bigint',@p0=100000581

使用的数据库是SQL Express 2008。LinqPad版本为4.43.06

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15690756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档