2008-10-31 8 views
1

Je voudrais revenir un objet avec la signature suivanteComment puis-je retourner une table jointe en tant qu'énumérable sur un type de retour anonyme dans linq to sql?

class AnonClass{ 
    string Name {get;} 
    IEnumerable<Group> Groups {get;} 
} 

J'ai essayé la requête suivante, mais g retourne une seule entité, toutes les entités jointes

var q = from t in dc.Themes 
join g in dc.Groups on t.K equals g.ThemeK 
select new {t.Name, Groups = g}; 
return q.ToArray(); 

mais cette renvoie

class AnonClass{ 
    string Name {get;} 
    Group Groups{get;} 
} 

Quelle est la requête linq correcte à utiliser?

Répondre

1

Je pense que vous voulez « rejoindre dans » au lieu de « rejoindre »:

var q = from t in dc.Themes 
     join g in dc.Groups on t.K equals g.ThemeK into groups 
     select new { t.Name, Groups=groups }; 

(C'est tout à fait non testé, cependant - la peine d'essayer, mais s'il vous plaît vérifier attentivement!)

1

Si vous avez la clé étrangère configuré correctement, alors il devrait être:

var q = from t in dc.Themes 
select new {t.Name, Groups = t.Groups}; 
+0

J'ai eu quelque chose comme ça auparavant, mais la propriété des groupes devient chargé paresseux, ce qui entraîne des charges d'appels sQL lorsque je tente de l'énumérer. – mcintyre321

Questions connexes