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 LINQ : Sélectionner tout - Visualiser dans une fenêtre à part
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();