Avec les modifications apportées à .NET Core 3.0, je reçois
... Échec de NavigationExpandingExpressionVisitor. Cela peut indiquer un bogue ou une limitation dans EF Core. Voir https://go.microsoft.com/fwlink/?linkid=2101433 pour des informations plus détaillées.) ---> System.InvalidOperationException: Traitement de l'expression LINQ 'GroupJoin, ...
Il s'agit d'une requête très simple, il doit donc y avoir un moyen de l'exécuter dans .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();
Je recherche essentiellement une requête Linq (ou une syntaxe de méthode comme ci-dessus) qui joindra les études aux patients et définira les études sur une liste vide ou nulle s'il n'y a pas d'études pour le patient donné.
Des idées? Cela fonctionnait dans .NET Core 2.2. Le lien MSFT ci-dessus mentionne également que le changement de rupture de clé est lié à l'évaluation côté client et évite que la requête générée ne lit des tables entières qui doivent ensuite être jointes ou filtrées côté client. Cependant, avec cette simple requête, la jointure doit être facilement réalisable côté serveur.