C# Where 有多个值
C# Where with multiple values
所以对于我当前的项目,我试图显示与用户添加到收藏夹的主题相同的所有帖子。
现在可以找到一个主题的所有帖子,但我想获取所有帖子。
var posts = db.Posts.Where(x => x.SubjectID == currentUser.Favourites.SubjectID);
这是我试过的方法,但不幸的是,这不起作用,它找不到 subjectID,可能是因为 currentUser 的收藏夹是无数的。
无论如何,是否可以与当前用户的收藏夹中可能存在的多个值进行比较?
从收藏夹创建一个 SubjectId 列表,然后将该列表传递给您的 where 子句。
var subjectIDs = currentUser.Favourites.Select(x => x.SubjectID).ToList();
var posts = db.Posts.Where(x => subjectIDs.Equals(x.SubjectID));
您可以在 Where:
中使用 Any
db.Posts.Where(x => currentUser.Favourites.Any(f => f.SubjectID ==x.SubjectID));
所以对于我当前的项目,我试图显示与用户添加到收藏夹的主题相同的所有帖子。
现在可以找到一个主题的所有帖子,但我想获取所有帖子。
var posts = db.Posts.Where(x => x.SubjectID == currentUser.Favourites.SubjectID);
这是我试过的方法,但不幸的是,这不起作用,它找不到 subjectID,可能是因为 currentUser 的收藏夹是无数的。 无论如何,是否可以与当前用户的收藏夹中可能存在的多个值进行比较?
从收藏夹创建一个 SubjectId 列表,然后将该列表传递给您的 where 子句。
var subjectIDs = currentUser.Favourites.Select(x => x.SubjectID).ToList();
var posts = db.Posts.Where(x => subjectIDs.Equals(x.SubjectID));
您可以在 Where:
中使用 Anydb.Posts.Where(x => currentUser.Favourites.Any(f => f.SubjectID ==x.SubjectID));