【发布时间】:2020-02-25 14:05:20
【问题描述】:
随着 .NET Core 3.0 的变化,我得到了
... NavigationExpandingExpressionVisitor' 失败。这可能表明 EF Core 中的错误或限制。看 https://go.microsoft.com/fwlink/?linkid=2101433了解更多详情 信息。)---> System.InvalidOperationException:处理 LINQ 表达式 'GroupJoin, ...
这是一个非常简单的查询,因此必须有一种方法可以在 .NET CORE 3.0 中执行它:
var queryResults1 = await patients
.GroupJoin(
_context.Studies,
p => p.Id,
s => s.Patient.Id,
(p, studies) => new
{
p.DateOfBirth,
p.Id,
p.Name,
p.Sex,
Studies =studies.Select(s1=>s1)
}
)
.AsNoTracking().ToListAsync();
我基本上是在寻找一个 Linq 查询(或上面的方法语法),它将研究连接到患者,如果给定患者没有研究,则将研究设置为空列表或 null。
有什么想法吗?这在 .NET Core 2.2 中有效。上面的 MSFT 链接还提到,关键的重大更改与客户端评估有关,并避免生成的查询读取整个表,然后必须加入或过滤客户端。然而,通过这个简单的查询,连接应该很容易在服务器端实现。
【问题讨论】:
标签: c# entity-framework linq .net-core .net-core-3.0