【问题标题】:How to get table A and count of table B with Linq to Sql group by如何使用 Linq to Sql 组获取表 A 和表 B 的计数
【发布时间】:2020-06-04 22:32:39
【问题描述】:

我有一个 Linq to SQL 查询,我想从一个表(下面我的简化查询中的 TableC)的所有匹配行中返回选择列,以及另一个表(下面的 TableB)中匹配行的计数。某些其他表也需要涉及到 where 子句才能工作(在简化查询中删除)。

如何从 TableC 中获取我需要的列和 TableB 的计数?

这是我的查询的简化版本:

var q = from a in dc.TableA
        from b in dc.TableB
        join c in dc.TableC on b.TableBID equals c.ID
        join d in dc.TableD on a.ID equals d.TableAID
        where 1 == 1 //lots of interesting stuff here
        group c by new { b, c } into g
        select new
        {
            ID = g.Key.c.ID,
            Name = g.Key.c.Name,
            Count = g.Count()
        };

更新:我想我找到了使用组加入的解决方案 - 答案发布在下面。我仍然想知道这是否是正确的解决方案。

【问题讨论】:

    标签: linq-to-sql


    【解决方案1】:

    在阅读了有关 Linq 组加入的信息后,我想出了这个解决方案。

    var q = from a in TableC
            join b in (from c in TableB
                       where (from d in TableA
                              join f in TableD on d.ID equals f.ID
                              where 1 == 1 //for simplicity
                              select d).Any()
                       && 1 == 1 //more simplification
                       select c) on a.TableBID equals b.ID into g
            where 1 == 1 //more simplification
            select new
            {
                a.ID,
                a.Name,
                Count = g.Count()
            };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多