Je rencontre des problèmes lors de la configuration d'une requête LINQ en utilisant plusieurs tables de ma base de données. Je suis capable de joindre deux tables sans problème en utilisant la syntaxe LINQ que j'apprends, mais plus que cela me donne des ennuis. Je tente de convertir la requête SQL ci-dessous en format LINQ. Je suis nouveau aux requêtes LINQ et à la façon dont tout se combine, mais c'est ce que j'ai imaginé. C'est un peu compliqué car avec 4 tables, la clause where est tirée de trois des différentes tables et la façon dont je l'ai mise en place m'oblige à disperser la méthode .Where() dans ma requête. Voir ci-dessous:LINQ utilisant plusieurs extensions .join avec plusieurs tables (4) ou plus
int num = db.apps.Distinct()
.Join(db.application_statuses,
a => a.apps_status,
aa => aa.application_status,
(a, aa) => new { apps = a, application_statuses = aa })
.Where(j => j.apps.admit_status == status && j.apps.apps_stu_type == type && j.apps.apps_start_term == term && j.application_statuses.application_code != null)
.Join(db.stu_terms,
a => a.apps.applicant,
st => st.student_id,
(a, st) => new { apps = a, stu_terms = st })
.Where(j => j.stu_terms.st_active_cred >= 0)
.Join(db.acad_prog,
a => a.apps.apps.apps_program,
ap => ap.acad_program,
(a, ap) => new { apps = a, acad_prog = ap })
.Join(db.stu_terms,
ap => ap.acad_prog.acad_lvl,
st => st.st_acad_lvl,
(ap, st) => new { acad_prog = ap, stu_terms = st }).Count();
Comme vous pouvez le voir, la méthode Où se trouve en deux endroits séparés parce qu'il ne serait en mesure de voir les colonnes de la table spécifique dans ces endroits. La majorité des problèmes que je vois est parce que je ne suis pas au courant si je me joins même à ces quatre tables correctement. La plupart de ces choses sont encore nouvelles pour moi (le placement aléatoire de la méthode Distinct() montre que)
J'apprécie l'aide.
si votre requête est si complexe ne le faites pas avec linQ – raven
Qu'est-ce que c'est? Linq2SQL ou EntityFramework? Avez-vous des relations dans votre modèle? – fhogberg
@fhogberg Entity Framework. Et je ne le crois pas. Ces tables ont des colonnes qui contiennent des données similaires, mais ne sont pas FK (s) les unes aux autres. – jcbrom