简体   繁体   English

在LINQ查询中,如何使用包含的表列使用.Include()进行排序?

[英]In LINQ query, how to order by included table column using .Include()?

I have this table structure: 我有这个表结构: 两个表和一个查找表

I have this LINQ query: 我有这个LINQ查询:

var query = (from p in context.People.Include("PeopleClub").Include("PeopleClub.Club")
             orderby p.Name
             select p).ToList();

Is it possible to do something like this: 有可能做这样的事情:

var query = (from p in context.People
                              .Include("PeopleClub")
                              .Include("PeopleClub.Club")
             orderby p.Name, p.PeopleClub.DisplaySequence
             select p).ToList();

Update: Using Entity Framework 4.0 更新:使用Entity Framework 4.0

Update 2: I give up. 更新2:我放弃了。 See this similar question for another approach. 对于另一种方法,请参阅此类似问题 I ended up rewriting my query without the .Include(). 我最后在没有.Include()的情况下重写了我的查询。

Try by navigation properties: 尝试导航属性:

using System.Data.Entity;                                  // notice using

var q = from p in context.People
                          .Include(p => p.PeopleClub)      // notice lambda instead of string
                          .Include(p => p.PeopleClub.Club) // you may not need that though
        orderby p.FirstName, p.ClubPerson.DisplaySequence
        select p;

or regular join: 或定期加入:

var q = from p in db.People
        join pc in db.PeopleClub on p.PersonID equals pc.PersonID
        join c in db.Clubs on pc.ClubID equals c.ClubID
        orderby p.FirstName, pc.DisplaySequence
        select p;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM