À l'aide de EF Core ThenInclude() sur la Jonction des tables

Je suis le transfert de mes .NET Framework (EF6) code de ASP.NET de Base (EF de Base), et je suis tombé sur cette question. Voici un exemple de code:

Dans EF6-je utiliser include() et Sélectionnez() pour impatient de chargement:

return _context.Post
.Include(p => p.PostAuthor.Select(pa => pa.Author).Select(a => a.Interests))

PostAuthor est une table de jonction et il y a aussi une table de Jonction "AuthorInterest" que je n'ai pas besoin de les impliquer dans EF6 (Select va droit à un.Les intérêts).

De toute façon, je peux voir que dans EF7 c'est retravaillée, ce qui signifie que je devrais utiliser ThenInclude() pour les requêtes imbriquées maintenant. Cependant...

return _context.Post
  .Include(p => p.PostAuthor)
    .ThenInclude(pa => pa.Select(pa2 => pa2.Author))
...etc

Le code ci-dessus échoue à cause de la Sélectionner() instruction. La documentation sur https://docs.efproject.net/en/latest/querying/related-data.html semble suggérer que je n'ai pas besoin, et je peux accéder à l'Auteur immédiatement, mais j'obtiens une ICollection dans la dernière lambda affiché, donc j'ai évidemment besoin de Sélectionner(). - Je aller à travers de multiples jonction des tables plus loin, dans la requête, mais pour des raisons de simplicité, nous allons concentrer sur la première.

Comment puis-je faire ce travail?

InformationsquelleAutor nikovn | 2016-10-29