仅获取 entity framework lambda 连接中的特定列

Getting only specific columns in entity framework lambda join

我很惊讶我在网上找不到解决方案,但搜索词的措辞有点困难。我的问题是关于生成实体 SQL,只有 returns 组中需要的列使用 Lambda 语法加入。

下面是一个"toy"例子。我不是加入两个实体,而是加入一个枚举列表和一个实体。隧道不是一个可以接受的答案。我需要使用 group join 和 select many.

将其应用于更大的问题
var result1 = clientprofiles.Join(Context.Adjusters,
c => c.AdjusterId,
a => a.AdjusterId,
(c, a) => new {a.ClientAccountId}).ToList();

使用 Julie Lehrman 的实体探查器,我看到正在为 select 行中满足连接条件的每条记录生成查询。我如何削减它,使其仅 select 本示例中的 ClientAccountId 字段?

您可以根据上下文在任何 select 上投影一组列,因此在您的情况下,您可以使用

来限制 Context.Adjusters 参数
Context.Adjusters.Select(a=> new { a.ClientAccountId })

将查询限制为仅单列