2010-08-19 3 views
1

Je l'exemple suivant:Comment inclure la propriété

using (MyContext context = new MyContext()) 
{ 
    var query = from entityA in context.EntityA.Include("TestProperty") 
       join entityB in context.EntityB on entityA.Id equals entityB.EntityAId 
       join entityC in context.EntityC on entityB.Id equals entityC.EntityBId 
       where entityC.Id == id 
       select entityA; 

    List<EntityA> toReturn = query.ToList(); 

    return toReturn; 
} 

Mes jointures sont tous fonctionnent comme prévu, cependant, ma propriété de navigation « TestProperty » est pas chargé correctement. Je regarde, pendant l'exécution, et c'est nul.

Quand je fais ce qui suit:

context.LoadProperty(toReturn, "TestProperty"); 

Il charge correctement la propriété 'TestProperty'. Y a-t-il quelque chose que je fais de façon incorrecte dans ma déclaration LINQ-to-SQL?

MISE À JOUR: J'ai changé la première ligne à:

from entityA in context.EntityA.Include("TestProperty").ToList() 

Et laissé le reste des lignes ci-dessous que le même et chargé ma propriété correctement. Est-ce la bonne solution au problème?

+0

Cela ressemble à une question LINQ to Entities, pas LINQ to SQL. Vous aurez probablement plus de chance si vous modifiez et ré-étiqueter votre question. :) – Peter

Répondre

1

"Est-ce la bonne solution au problème?" c'est la pire solution possible, car vous faites maintenant toute la requête côté client.

-1

Include doit être écrit après joindre & clause where

Vérifiez ceci:

var query = ((from entityA in context.EntityA 
       join entityB in context.EntityB on entityA.Id equals entityB.EntityAId 
       join entityC in context.EntityC on entityB.Id equals entityC.EntityBId 
       where entityC.Id == id 
       select entityA) as objectQuery<EntityA>).Include("TestProperty") 
+0

Inclure ne fonctionne pas sur les projections – BrokenGlass

Questions connexes