单链接查询where子句只从单个模型/表中获取每种类型的`n`

时间:2015-05-13 21:53:35

标签: linq entity-framework

如果表angular.module('app').controller('HomePageCtrl', function($scope, Homepage, posts, topics, photos, sideBar) { $scope.activate = function () { $scope.slide = (photos || [])[0]; $scope.posts = Homepage.posts(posts); $scope.topics = Homepage.topics(topics); $scope.sideBar = sideBar; $scope.template = '/templates/home-page.html'; } $scope.activate(); }); 包含列Entities(在其他列之间),我如何只从typen个实体中选择A个实体在单个linq查询where子句中键入m?有可能吗?

我正在寻找类似的东西:

b

包含组合查询的当前解决方案:

var x = from s in db.Entities
        where s.type == `A` && (????) < n 
           || s.type == `B` && (????) < m 
        select s

1 个答案:

答案 0 :(得分:1)

您可以使用GroupBy

var x = db.Entities.GroupBy(x => x.type)
                   .Where(g => g.Key == "A" || g.Key == "B")
                   .SelectMany(g => g.Key == "A" ? g.Take(n) : g.Take(m));

但我不知道为什么你不喜欢基于Union的解决方案 - 它应该只会导致一个查询被发送到数据库。