So rufen Sie mithilfe von linq Enkelobjekte von einem übergeordneten Objekt ab

8

Ich habe mehrere Elternteile & gt; Kind & gt; Enkelkind-Beziehungen in meinem DB-Schema. Normalerweise habe ich die Eltern und ich möchte etwas über die Enkel wissen. Zum Beispiel habe ich einen Benutzer, der eine Sammlung von sozialen Netzwerken hat, die Sammlungen von Freunden haben. Ich merke, dass ich diesen Code immer wieder schreibe.

%Vor%

Gibt es einen eleganteren Weg, dies mit linq zu tun?

Was ich wirklich gerne tun könnte, ist "user.Friends", aber ich müsste dem Benutzer einen Fremdschlüssel in die Freundesliste geben, und das riecht nicht richtig. So würde das aussehen:

%Vor%

Gedanken?

    
DanielEli 16.02.2011, 22:26
quelle

2 Antworten

13

Sie können den Code nur einmal als Methode für die Klasse User schreiben:

%Vor%

Alternativ können Sie auch SelectMany() :

verwenden %Vor%     
Mark Cidade 16.02.2011, 22:34
quelle
0

Ich weiß das alt, aber ich habe in letzter Zeit dasselbe erlebt, und eine Alternative besteht darin, das Gegenteil zu tun. Beginnen Sie nicht mit Benutzer und Drilldown, beginnen Sie bei Friend und filtern Sie basierend auf dem übergeordneten (oder Großeltern). Sie benötigen dazu die Benutzer-ID. Wenn die Hierarchie tiefer wird, finde ich das besser lesbar. Etwas wie:

%Vor%     
Jonathan 17.11.2017 19:46
quelle

Tags und Links