2015-07-08 5 views
5

Nun, ich bin mir nicht sicher, ob diese Fragen zuvor gestellt, aber ich habe keine Ahnung, wie die Suche danach. Nun, das ist keine Entity Framework spezifizierte Frage, aber ich werde ein Beispiel dafür geben.So generieren Sie dynamisch Includes in Entity Framework

Also in EF müssen wir verwenden, um damit zusammenhängende Daten aufzunehmen. Allerdings möchte ich eine Methode schreiben, die eine Liste von Strings akzeptiert und die Entity oder Entity List mit den zugehörigen Objekten zurückgibt.

In Beispiel

public List<Entity> GetAll(List<string> includes>) 
{ 
    List<Entity> entites = context.Entites; 
    foreach(string s in includes) 
    { 
      entites.Include(s); 
    } 
    return entites; 
} 

Offensichtlich obigen Beispiel wird nicht funktionieren, da ich bereits die Entities genannt, als ich die Liste erklärt. Aber ich denke, es zeigt den Punkt.

+0

Sie könnten einen besseren Titel für Ihre Frage verwenden :) Manche Dinge wie 'Wie generieren Sie dynamisch Include in Entity Framework' oder etwas ähnliches. Und vielleicht möchtest du das "entity-framework" -Tag zu deiner Frage hinzufügen. – sstan

+0

Nun, das ist sicher ein besserer Titel. :) Aber das ist keine EF-spezifizierte Frage, aber vielleicht hast du recht. –

+0

Ich habe deinen Ratschlag angenommen. :) –

Antwort

4

Erklären Sie Ihre lokale Variable als DbQuery<Entity>, Ergebnis Include Anruf, um es neu zuweisen und ToList auf sie nach der Schleife nennen:

public List<Entity> GetAll(List<string> includes>) 
{ 
    DbQuery<Entity> entites = context.Entites; 
    foreach(string s in includes) 
    { 
      entities = entites.Include(s); 
    } 
    return entites.ToList(); 
} 
+0

Ich versuche es. –

+1

Es macht den Trick. Vielen Dank. –