C# 如何在join和groupby之后进行排序
加入和分组后如何排序?如何按字段C# 如何在join和groupby之后进行排序,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,加入和分组后如何排序?如何按字段ps.end订购 var query = from p in _productRepository.Table join ps in _productScheduleRepository.Table on p.Id equals ps.ProductId where p.Published && !p.Deleted && p.ShowOnHomePage && !ps
ps.end
订购
var query =
from p in _productRepository.Table
join ps in _productScheduleRepository.Table on p.Id equals ps.ProductId
where p.Published &&
!p.Deleted &&
p.ShowOnHomePage &&
!ps.IsUsage && ps.Start <= DateTime.Now && ps.End >= DateTime.Now
group p by p.Id into Grouped
select Grouped.FirstOrDefault();
var查询=
从p in_productRepository.Table
在p.Id等于ps.ProductId的_productScheduleRepository.Table中加入ps
p.出版的地方&&
!p、 删除&&
p、 ShowOnHomePage&&
!ps.IsUsage&&ps.Start=DateTime.Now
按p.Id将p分组为分组
选择Grouped.FirstOrDefault();
要订购组中的项目,只需调用OrderBy
:
var query = from p in _productRepository.Table
join ps in _productScheduleRepository.Table on p.Id equals ps.ProductId
where ...
group new{ p, ps } by p.Id into Grouped
select Grouped.OrderBy(pair => pair.ps.end).FirstOrDefault().p;
无法访问字段ps.end!!!ps.end是_productScheduleRepository.Table***的字段,加入***@user3569283之后,您需要对这两个值进行分组,而不仅仅是一个值。ps.ProductId是_productRepository.Table的外键。表表示关系是iCollection ps(is SelectMany),不按分组访问。OrderBy(pair=>pair.ps.end)!!当您进行内部联接时,您将该关系展平为一系列对,而不是具有匹配值集合的对(如果您使用它,您将从
GroupJoin
中获得匹配值)。