Они эквивалентны. Первый, очевидно, предпочтительнее, но это невозможно при навигации по коллекции. Следовательно, ThenInclude ().
// Won't compile
return source
.Include(x => x.Posts.Authors)
.Include(x => x.Posts.Comments);
// Compiles
return source
.Include(x => x.Posts)
.ThenInclude(x => x.Authors)
.Include(x => x.Posts)
.ThenInclude(x => x.Comments);
Но, если вы хотите отказаться от безопасности типов во время компиляции, вы также можете просто использовать перегрузки строк.
// Compiles, may throw
return source
.Include("Posts.Authors")
.Include("Posts.Comments");
Но, пожалуйста,не делай этого ...
// Over-thinking it ;-)
return source
.Include(nameof(Blog.Posts) + "." + nameof(Post.Authors))
.Include(nameof(Blog.Posts) + "." + nameof(Post.Comments));