2015-07-08 16 views
5

Beh, non sono sicuro che le domande siano state fatte prima, ma non ho idea di come sia stata cercata. Bene, questa non è una domanda specificata da Entity Framework, ma darò un esempio usando questo.Come generare dinamicamente Include nel framework di entità

Quindi in EF è necessario utilizzare .Include("Related Object") per includere i dati correlati. Tuttavia, ciò che voglio è scrivere un metodo che prende un elenco di stringhe e restituisce l'entità o l'elenco di entità con gli oggetti correlati.

Nell'esempio

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

Ovviamente sopra esempio non funziona da quando ho già chiamato i entités quando ho dichiarato la lista. Ma penso che dimostri il punto.

+0

si potrebbe usare un titolo migliore per la tua domanda :) Qualche cosa come 'Come generare dinamicamente Include in entity framework o qualcosa di simile. E potresti voler aggiungere il tag 'entity-framework' alla tua domanda. – sstan

+0

Beh, questo è sicuramente un titolo migliore. :) Ma questa non è una domanda specificata da EF ma potresti avere ragione. –

+0

Ho seguito il tuo consiglio. :) –

risposta

4

dichiarare la variabile locale come DbQuery<Entity>, risultato riassegnare di Include chiamata ad esso e chiamare ToList su di esso dopo il ciclo:

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

Sto provando. –

+1

Fa il trucco. Grazie mille. –