【问题标题】:Get foreign key table with a single query using LINQ使用 LINQ 通过单个查询获取外键表
【发布时间】:2012-07-24 23:56:13
【问题描述】:

我有以下两张表

Groups
- Id
- Name

Members
- Id
- GroupId
- Name

我想显示一个群组列表及其成员数。我可以获取所有组,然后使用 foreach 语句来计算成员数。但这非常低效。

有没有办法编写一个在单个查询中返回成员计数的 LINQ 查询?

【问题讨论】:

    标签: c# linq entity-framework


    【解决方案1】:

    您可以使用简单的 linq-to-entities 查询来完成。您可以将其投影为匿名类型,也可以创建自己的类来存储信息。

    var query = from g in context.Groups
                join m in context.Members on g.Id equals m.GroupId into members
                select new 
                {
                  Group = g,
                  MemberCount = members.Count(),
                };
    

    【讨论】:

    • 还没有测试过,但这有效吗?组 = g
    • @James - 是的,或者您可以选择您想要的属性,例如:GroupId = g.Id, GroupName = g.Name, etc
    【解决方案2】:

    如果存在外键关系,这不可行吗?

    var q = context.Groups.Select(x => new { Group = x.Name, Count = x.Members.Count() } );
    

    【讨论】:

      猜你喜欢
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 2017-05-10
      • 2021-05-31
      • 2021-04-25
      • 1970-01-01
      相关资源
      最近更新 更多