Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在join和groupby之后进行排序_C#_Linq_Linq To Entities - Fatal编程技术网

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
中获得匹配值)。