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

scw*_*scw 5 c# linq linq-to-entities entity-framework sql-order-by

我有这个表结构: 两个表和一个查找表

我有这个LINQ查询:

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

有可能做这样的事情:

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

更新:使用Entity Framework 4.0

更新2:我放弃了.对于另一种方法,请参阅此类似问题 我最后在没有.Include()的情况下重写了我的查询.

aba*_*hev 3

通过导航属性尝试:

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;
Run Code Online (Sandbox Code Playgroud)

或常规加入:

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;
Run Code Online (Sandbox Code Playgroud)