In EF6 verwenden wir wie diese verbundenen Unternehmen zu laden:Eager Läden verbundenen Unternehmen in EF-Core mit EF6 Syntax
query // (A)
.Include(q => q.Employee.Supervisor.Office.Address)
.Include(q => q.Orders);
Das würde eifrig Last aller Entitäten in dieser Kette.
In EF-Core, sollen Sie, dies tun: (! Viel)
query // (B)
.Include(q => q.Employee)
.ThenInclude(q => q.Supervisor)
.ThenInclude(q => q.Office)
.ThenInclude(q => q.Address)
.Include(q => q.Orders);
, die viel weniger freundlich, aber funktioniert.
Unsere Codebasis hat Tonnen von (A)
Anrufe, die wir auf (B)
aktualisieren müssen, damit wir EF Core verwenden können.
Ich habe festgestellt, dass EF Core in vielen Fällen perfekt mit (A)
funktioniert, obwohl es nicht sollte! ... und manchmal scheitert es vollständig.
Ist das ein Zufall? Soll es unter bestimmten Umständen mit (A)
arbeiten? Denn wenn ich es nicht muss, habe ich keine Lust, viele hundert Änderungen vorzunehmen und sie dann zu testen.
Ich denke, die einzige nicht unterstützte EF6 "Include" -Syntax (wo Sie gezwungen sind, 'ThenInclude' zu verwenden) verwendet' Select' innerhalb (für die Aufnahme von Element-bezogenen Eigenschaft). Sie müssen also nur nach Includes mit Select-Ausdrücken suchen. –
@IvanStoev Danke! Ich dachte, ich müsste alle Abfragen auf die neue Syntax ändern - aber nur einige von ihnen zu aktualisieren wird viel einfacher. – grokky