Com as alterações no .NET Core 3.0, estou recebendo
... NavigationExpandingExpressionVisitor 'falhou. Isso pode indicar um bug ou uma limitação no EF Core. Consulte https://go.microsoft.com/fwlink/?linkid=2101433 para obter informações mais detalhadas.) ---> System.InvalidOperationException: Processando a expressão LINQ 'GroupJoin, ...
Esta é uma consulta realmente simples, portanto, deve haver uma maneira de realizá-la no .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();
Basicamente, estou procurando uma consulta Linq (ou sintaxe do método acima) que junte Estudos aos Pacientes e defina Estudos para uma lista vazia ou nula se não houver estudos para o paciente em questão.
Alguma ideia? Isso estava funcionando no .NET Core 2.2. Além disso, o link MSFT acima menciona que a alteração de quebra de chave está relacionada à avaliação do lado do cliente e evitando que a consulta gerada leia tabelas inteiras que devem ser unidas ou filtradas no lado do cliente. No entanto, com essa consulta simples, a associação deve ser facilmente executável no lado do servidor.
fonte
groupby
em junções esquerdas onde isso não retira mais linhas do que o esperado. Eu postei um comentário em conformidade.Tinha exatamente o mesmo problema e uma grande luta com ele. Acontece que o .net Core 3.0 não suporta Join ou Groupjoin na sintaxe do método (ainda?). A parte divertida é que ele funciona na sintaxe de consulta.
Tente isso, é sintaxe de consulta com um pouco de sintaxe de método. Isso se traduz muito bem na consulta SQL correta com uma boa junção externa esquerda e é processada no banco de dados. Eu não tenho seus modelos, então você precisa verificar a sintaxe ...
fonte