LINQ to Entities:Group然后Order By

时间:2015-06-09 09:55:15

标签: c# linq entity-framework

根据我的阅读,我可以使用LINQ进行第一组,然后使用“SelectMany”对每个组进行排序,这里将对此进行描述:How to group a IQueryable by property 1 but order by property 2?

但是,这对IQueryable来说不起作用。

我们基本上得到一个带有Main-Entity和IEnumable of Entities的BusinessObject,所以我想首先按Main-Entity序列排序,然后按每个Subentities的名称排序。

所以我猜我的查询在LINQ to objects中看起来像这样:

validationApp.controller('mainController', function($scope,loginservice) {

 //$scope.dologin = loginservice.login();
   $scope.dologin = function () {
       if ($scope.userForm.$valid) {
            loginservice.login($scope.user.email, $scope.user.password);
        }
   }
});

我可以在Query-Service中订购此名称,但是消费者可以根据需要订购实体。

是否有可能在不加载内存中的所有实体的情况下使这项工作变得有条不紊?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望按记录名称对每个组内的记录进行排序。我认为您可以通过在执行分组之前订购记录来完成此操作,请尝试以下代码:

var q = from m in MainEntities
join s in SubEntities on m.Id equals s.MainId
orderby m.SequenceNumber, s.Name
group new { m, s } by m into grp
orderby grp.Key.SequenceNumber
select grp;