orderby嵌套linq

时间:2011-09-14 18:08:32

标签: linq nested sql-order-by

var query = from m in db.Members.Include("Companies.Projects.Experiences.ExperienceTags")
                    where m.MemberId == id                        
                    select m;

我也想从这个查询中通过project.enddate来命令。我该怎么做enddate也可以为null,然后我希望它在今天命令时的日期。并且,公司可能并不总是有一个项目,然后它应该在今天订购。

这是ef数据图a link

的图像

1 个答案:

答案 0 :(得分: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;