Linq any - 如何选择

Sim*_*röm 4 .net c# linq entity-framework

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

Class Favorites
Guid UserId
Guid ObjectId

Class Objects
Guid Id
String Name
Run Code Online (Sandbox Code Playgroud)

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

所以我尝试过这样的事情

context.Objects.Where(
   x => x.Id == 
   context.Favorite.Where(f => f.UserId == UserId)
   .Select(f => f.ObjectId).Any()
);
Run Code Online (Sandbox Code Playgroud)

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

Kam*_*eri 6

你可以使用join子句:

context.Favorite
  .Where(f => f.UserId == UserId)
  .Join(context.Objects, t => t.ObjectId, u => u.Id, (t, u) => t);
Run Code Online (Sandbox Code Playgroud)