2011-09-14 83 views
0
var query = from m in db.Members.Include("Companies.Projects.Experiences.ExperienceTags") 
        where m.MemberId == id       
        select m; 

我想也从这个查询orderby the project.enddate。我将如何做到这一点。 enddate也可以为null,然后我希望它是今天的日期,当它orderby。而且,公司可能并不总是有一个项目,那么它应该是今天的订单。orderby nested linq

这里是EF数据图a link

回答

0

的图像既然有你需要做的SelectMany像这样一个一对多的关系:

var query = from m in db.Members.Include("Companies.Projects.Experiences.ExperienceTags") 
      where m.MemberId == id 
      orderby m.Companies.SelectMany(c => c.Projects).OrderByDescending(p => p.EndDate).FirstOrDefault() == null ? 
       DateTime.Today : 
       m.Companies.SelectMany(c => c.Projects).OrderByDescending(p => p.EndDate).FirstOrDefault()   
      select m; 
+0

这只是使它返回成员,这不是”根本不包括任何公司。我希望它包括成员下的公司。 – Prez

+0

@Prez - 我删除了Let语句,它应该保留包含语句 – Aducci

+0

似乎获取所有记录但根本没有任何顺序。 – Prez