仅获取实体框架中的特定列lambda join

时间:2015-02-12 20:39:54

标签: c# entity-framework lambda

我很惊讶我无法在网上找到解决方案,但搜索条件的措辞有点困难。我的问题是生成实体SQL,它只使用Lambda语法返回组连接中所需的列。

以下是“玩具”示例。我不是加入两个实体,而是加入枚举列表和实体。隧道掘进不是一个可接受的答案。我需要使用组连接将其应用于更大的问题并选择多个。

var result1 = clientprofiles.Join(Context.Adjusters,
c => c.AdjusterId,
a => a.AdjusterId,
(c, a) => new {a.ClientAccountId}).ToList();

使用Julie Lehrman的实体分析器,我看到正在生成查询以选择符合连接条件的行中的每个记录。我如何削减它以便它只选择此示例中的ClientAccountId字段?

1 个答案:

答案 0 :(得分:1)

您可以在上下文中的任何选择上投影一组列,因此在您的情况下,您可以使用

约束Context.Adjusters参数
Context.Adjusters.Select(a=> new { a.ClientAccountId })

将查询约束为单列