J'essaie de trouver la meilleure façon de traiter un problème simple: je simple LINQ joindre à deux tables. Je sais comment retourner le type pour une table, car c'est la même chose que la classe dbml générée. Cependant, que se passe-t-il si je veux renvoyer des données des deux tables - n'y a-t-il pas un moyen de retourner les deux et d'utiliser leurs relations? Dois-je vraiment créer un autre type de retour pour renvoyer les données des deux tables? FYI- Je ne veux pas retourner un paramètre de sortie avec l'autre objet table; Je ne suis pas vraiment intéressé par le retour d'un type anonyme. Quelle est la recommandation de meilleure pratique?LINQ to SQL: Multi-table de jointure retour type non-généré par dbml
public IQueryable<Consumer_Question> GetQuestions(int subCategoryId)
{
//create DataContext
MototoolsDataContext mototoolsDataContext = new MototoolsDataContext();
mototoolsDataContext.Log = Console.Out;
var subcategoriestag = (from subCatTag in mototoolsDataContext.Consumer_SubCategoriesTags
join tagQuestion in mototoolsDataContext.Consumer_TagQuestions on subCatTag.TagID equals tagQuestion.TagID
join question in mototoolsDataContext.Consumer_Questions on tagQuestion.QuestionsID equals question.ID
where subCatTag.SubCategoriesID == subCategoryId
orderby subCatTag.ID descending
select question);
//select new { question, tagQuestion });
return subcategoriestag;
}
Merci pour toute aide,
Cela soulève une autre question, si j'ai assigné des relations à mes tables dans la base de données déjà (clés primaires, clés étrangères) J'ai remarqué que la classe générée dbml crée un attribut d'association pour moi une des relations, pas tous. Donc dites-vous que si cette association de relations est faite correctement, que je peux retourner le type de parent et marcher les enfants? C'est ce que je veux! Je vais devoir enquêter sur le bug de l'association dbml que je semble avoir. – mytwocents
Donc il s'avère que le problème avec dbml générant mes attributs d'association pour les relations n'était pas parce que j'ai oublié la partie clé étrangère de la relation, mais parce qu'il me manquait une désignation de clé primaire sur la table parent. Maintenant, je suis capable de traverser l'objet enfants de l'objet question et ne pas m'inquiéter d'un type de retour personnalisé pour inclure toutes les données que je veux. Cool. – mytwocents
@mytwocents: Heureux d'entendre ça, une fois que tout est configuré correctement, LINQ-to-SQL est assez sympa, il y a quand même quelques zones qui sont un peu douloureuses mais qui apporte finalement quelques améliorations pour le VS2010. –