Problème de Where dans un Include
Bonjour,
Soit 4 tables liées (scdt_cad, scdt_cad_qualif, scdt_circ et scdt_designation). L'objet scdt_cad contient donc 3 ICollection (scdt_cad_qualif, scdt_circ et scdt_designation)
Et enfin une table indépendante anc_lots.
scdt_cad contient code_cad
scdt_designation contient code_designation (et code_cad via son scdt_cad parent)
anc_lots contient code_cad et code_ds (équivalent à code_designation).
Il y a bcp de scdt_cad, et chaque scdt_cad contient plusieurs code_designation. Mais seulement certains code_designation (et donc leur scdt_cad parent) sont repris dans anc_lots.
Je veux faire des combobox dans lesquelles l'utilisateur choisira d'abord le scdt_cad, puis le scdt_designation. Il ne me sert donc à rien d'afficher les scdt_cad et les scdt_designation inutilisés.
Je cherche dès lors à sortir seulement les scdt_cad qui sont repris dans anc_lots (via code_cad), et dans ces scdt_cad, seulement les scdt_designation qui se trouvent dans anc_lots (via code_cad et code_ds).
La requête que j'ai écrite sort bien seulement les scdt_cad concernés. Par contre, dans chaque scdt_cad, toutes les scdt_designation sortent, même celles dont la combinaison code_cad + code_ds ne se trouve pas dans anc_lots (ce que je comprend vu ce que j'ai écris).
Comment faire pour ne "garder" que les scdt_designation concernées et pas toutes ?
Merci.
Code:
1 2 3 4 5 6
| var result = context.scdt_cad
.Include("scdt_designation")
.Include("scdt_cad_qualif")
.Include("scdt_circ")
.Where(x => x.scdt_designation.Any(y => context.anc_lots.Any(z => z.code_ds == y.code_designation && z.code_cad == x.code_cad)))
.ToList(); |