c# - Linq any - 如何选择

标签 c# .net linq entity-framework

我有一些看起来像这样的简单类:

Class Favorites
Guid UserId
Guid ObjectId

Class Objects
Guid Id
String Name

使用 Entity Framework,我想选择所有已被用户标记为收藏的对象。

所以我尝试了这样的事情

context.Objects.Where(
   x => x.Id == 
   context.Favorite.Where(f => f.UserId == UserId)
   .Select(f => f.ObjectId).Any()
);

但是我不明白。我也尝试过相交,但我最了解的是同一类型。一个用户可以拥有多个收藏对象

最佳答案

你可以使用连接子句:

context.Favorite
  .Where(f => f.UserId == UserId)
  .Join(context.Objects, t => t.ObjectId, u => u.Id, (t, u) => t);

关于c# - Linq any - 如何选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731107/

相关文章:

c# - 无法以编程方式查看光标的移动

c# - 如何正确地重载具有多个集合参数的 WebAPI 2 Controller ?

c# - 如何使用 LINQ 将字典的键和值组合到一个列表中?

c# - 按查询字符串过滤 FormView

c# - 带 1 个逗号的文本框货币格式

sql - 按领域区分的 Entity Framework

linq - 使用 LINQ 和 File.ReadAllLines() 读取下一行

c# - 如何知道2个背包问题中拿了哪些元素?

c# - 为什么 C# RegEx 类不尊重 Environment.NewLine?

.net - Azure 服务总线主题中的基础 IOException