按外键分组并选择 (LINQ)

本文关键字:选择 LINQ | 更新日期: 2023-09-27 18:30:30

我有 2 个表:

表1:Id_tb1(PK),标题1。

表2:Id_tb2(PK),Id_tb1(FK),标题2。

所以 table2 的简单查询可以这样写:

from p in table2 select new { p.Id_tb2, Title1 = p.Table1.Title1 }

如何在"按 FK 选择使用组时"列中获取 Title1? 像这样:

from p in table2 group p by p.Id_tb1 into g select g.Table1.Title1

按外键分组并选择 (LINQ)

试试这个:

var result =
    from p in table2
    group p by p.Table1 into g
    select g.Key.Title1;

这按Table1实体(而不仅仅是 id)进行分组。

g.Key允许您访问组键,这是每个组的Table1实体。

你可以试试这个:

var result = from p in table2 group p.Table1.Title1 by p.Id_tb1 into g select g.ToList();

此查询将返回每个组Title1的列表。

如果需要选择多个属性,请执行以下操作:

var result = from p in table2 group p by p.Id_tb1 into g select g.Select(e=>new { e.Id_tb2, Title1 = e.Table1.Title1 });