c# - GroupJoin 和包含

标签 c# linq linq-to-sql include grouping

在 GroupJoin 之后,我想包括 Book.Authors,因为字段 Book.Authors 将为空。 但我不能。我应该怎么做才能解决这个问题?

Queryable<NewRead> recent = Repository.NewReads.Where(x => x.UserId == usersId);

var newFavs = IsAuthorized ? Repository.NewFavs.Where(x => x.UserId == UserId) : Repository.NewFavs.Where(x => false);

var recentFavorite = recent.GroupJoin(newFavs,
                             x => x.BookId,
                             y => y.BookId,
                             (x, y) => new {Recent = x, Favorite = y, x.Book});

我试过:

var recent = Repository.NewReads.Include("Book.Authors")
                   .Where(x => x.UserId == usersId);

var newFavs = IsAuthorized ? Repository.NewFavs.Include("Book.Authors").Where(x => x.UserId == UserId) : Repository.NewFavs.Where(x => false);

所有这一切。 它在 GroupJoin 之前起作用,但在 Authors 字段丢失之后起作用。 如果我添加:

var recentFavorite = recent.GroupJoin(newFavs,
                             x => x.BookId,
                             y => y.BookId,
                             (x, y) => new {Recent = x, Favorite = y, x.Book, x.Book.Authors});

一切正常,但这不是解决方案。

最佳答案

你可以做到

var recent = Repository.NewReads.Include(x => x.Book.Authors)
                       .Where(x => x.UserId == usersId);

关于c# - GroupJoin 和包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447858/

相关文章:

c# - 来自线程的异常不会冒泡到主线程

c# - 我可以调试 NuGet 包吗?

c# - 根据条件确定 LINQ Enumerable 是否包含对象?

c# - SQL select where但只检查参数是否为真

linq-to-sql - 覆盖 LINQ to SQL 生成的 SQL?

c# - 在 .Net 中使用 kernel32

c# - 如何使用正则表达式从输入字符串中提取所有非字母数字字符?

c# - 添加新记录 var LINQ

c# - Linq To SQL 包含

windows-phone-8 - 当我的 WP8 应用程序使用本地 linq to sql 数据库时,如何将其迁移到通用版本?