J'ai des tables dans ma base de données avec les relations simples suivantes:

a -> b
b -> c
b -> d

Qui sont mappés sur les propriétés de navigation correspondantes dans le modèle.

Je veux obtenir des données de "A" avec toutes les données associées de "B, C, D".

Si j'essaye:

dbcontext.a.Include(x => x.b)
           .ThenInclude(x => x.c)
           .ThenInclude(x => x.d)

Je reçois une erreur car cela implique une relation c -> d (au lieu de b -> d).

Ensuite, si j'essaye:

dbcontext.a.Include(x => x.b)
           .ThenInclude(x => x.c)
           .Include(x => x.d)

Je reçois une erreur car cela implique une relation a -> d (au lieu de b -> d).

J'apprécierais de l'aide sur la manière de calmer correctement les méthodes.

1
Marko 7 mai 2021 à 18:28

1 réponse

Meilleure réponse

Essayez ceci si vous utilisez net5

dbcontext.a.Include(x => x.b)
            .ThenInclude(x => x.c)
             .Include(x => x.b)
            .ThenInclude(x => x.d)

Ou pour éviter de répéter que vous pouvez essayer (a été testé par @marko)

dbcontext.a.Include(x => x.b)
            .ThenInclude(x => x.c)
             .Include(x => x.b.d)
           

Mais je préfère utiliser cette syntaxe (convient à toutes les versions)

dbcontext.a.Include(x => x.b)
            .ThenInclude(x => x.c)
             .Include("b.d")
0
Sergey 7 mai 2021 à 16:05