Il est pas clair pour moi le rôle que Dept
joue ici; tel que décrit il apparaît que Emp
s peut être joint à Zone
s sans utiliser Dept
comme intermédiaire.
// these could be Tables in a DataContext
IEnumerable<Emp> emps;
IEnumerable<Zone> zones
var result = (from e in emps
join z in zones on e.deptId equals z.DeptId
where e.empId == employeeID
select z.ZoneType).Single();
Peut-être que vous vouliez dire pour Dept
d'avoir une colonne nommée ZoneID
? Ensuite, vous diriez:
// these could be Tables in a DataContext
IEnumerable<Emp> emps;
IEnumerable<Dept> depts;
IEnumerable<Zone> zones;
var result = (from e in emps
join d in depts on e.deptId equals d.deptId
join z in zones on d.ZoneID equals z.ZoneID
where e.empId == employeeId
select z.ZoneType).Single();
En raison de l'ambiguïté dans votre question, je ne peux pas vous donner une réponse définitive mais devrait être suffisant ci-dessus pour vous orienter dans la bonne direction. Sinon, n'hésitez pas à poster un commentaire demandant des éclaircissements.
Peut-être que je ne comprends pas complètement les colonnes de vos tables, mais certaines des clés étrangères dans vos tables me semblent un peu louche ... – jeremyalan