随着对.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链接还提到,密钥突破更改与客户端评估有关,并且避免了生成的查询读取整个表,然后必须对这些表进行联接或过滤。但是,通过此简单查询,可以在服务器端轻松进行联接。