首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq2Sql:查询优化

Linq2Sql:查询优化
EN

Stack Overflow用户
提问于 2011-01-15 04:15:05
回答 1查看 176关注 0票数 1

我有以下查询:

  1. 从DB获取所需的团队ids列表:

).ToList();

  • Using =(来自DbContext.sectors中的扇区,sector.Type=typeValue组扇区由sector.TeamId转到teamSectors,选择teamSectors.Key teamIds )此列表获取所需团队的所有扇区:

).ToList();

  • Create sectorsForAllTeams =(来自DbContext.sectors中的扇区,teamIds.Contains(sector.TeamId)根据扇区选择扇区teamIds.Contains(sector.TeamId)):

IList体育场=新List();foreach(int teamId in teamIds) { IList teamSectors =IList stadiums.Add(新InfrStadium(teamId,teamSectors);}

我在这里担心的是,对于从DB收到的集合,我需要在客户端每个团队应用Where/ToList一次

有什么方法可以优化吗?

谢谢。

潜在地,我可以对服务器上的项进行排序(使用索引),然后对teamIds进行排序,并使用扇区集合,而不需要真正的“查询”集合.但也许有更好的方法来优化这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-15 04:38:09

我想你可以一步到位。

代码语言:javascript
复制
var stadiums = DbContext.sectors
                        .Where( s => s.Type == typeValue )
                        .ToLookup( s => s.TeamId )
                        .Select( l => new InfrStadium( l.Key, l.ToList() )
                        .ToList();

尽管,如果您可以让InfrStadium的构造函数接受一个IEnumerable<Sector>而不是需要一个List<Sector>,那就更好了,那么您可以省略额外的ToList

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

https://stackoverflow.com/questions/4697954

复制
相关文章

相似问题

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