簡體   English   中英

如何使用LINQ在實體框架中執行這種類型的JOIN

[英]How can I perform this type of JOIN in Entity framework with LINQ

我有班級徽章:(例如)

**Badge**
 -User (Owned by)
 -Title (e.g votesOnThingReached5)

用戶自己的徽章通過類UserBadge(必需)。

**UserBadge:**
  -User
  -Badge

所以:

myUser.UserBadges(); //Gets all user's current badges they own.
db.Badges(); //Gets all badges avaialble to be earnt.

我只需要獲取用戶當前沒有的徽章即可。

我怎么寫這個LINQ? 這是我的pseduo代碼示例:

db.Badges(Where(b =>
new query(!myUser.UserBadges.contains(b));

您的Badge POCO上是否有一個用戶集合? 如果是這樣的話:

db.Badges.Where(b => !b.Users.Any(u=>u.UserId == myUserId));

否則,您可以執行以下操作:

List<int> ownedBadges = myUser.Badges.Select(x=> x.BadgeId).ToList();
db.Badges.Where(b => !ownedBadges.Contains(b.BadgeId));
db.Badges.Where(b=>!myUser.UserBadges.Contains(b));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM