[英]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.