Mit den Änderungen an .NET Core 3.0 bekomme ich
... NavigationExpandingExpressionVisitor 'fehlgeschlagen. Dies kann entweder auf einen Fehler oder eine Einschränkung in EF Core hinweisen. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=2101433 .) ---> System.InvalidOperationException: Verarbeitung des LINQ-Ausdrucks 'GroupJoin, ...
Dies ist eine wirklich einfache Abfrage, daher muss es eine Möglichkeit geben, sie in .NET CORE 3.0 auszuführen:
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();
Ich suche im Grunde nach einer Linq-Abfrage (oder Methodensyntax wie oben), die Studien zu Patienten verknüpft und Studien auf eine leere Liste oder null setzt, wenn für den angegebenen Patienten keine Studien vorhanden sind.
Irgendwelche Ideen? Dies funktionierte in .NET Core 2.2. Der obige MSFT-Link erwähnt auch, dass die Änderung des Schlüsselbruchs mit der clientseitigen Auswertung zusammenhängt und vermieden wird, dass die generierte Abfrage ganze Tabellen liest, die dann clientseitig verbunden oder gefiltert werden müssen. Bei dieser einfachen Abfrage sollte der Join jedoch serverseitig leicht zu erledigen sein.