0

我有一个班级徽章:(例如)

**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?这是我的伪代码示例:

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

2 回答 2

2

您的BadgePOCO 上有用户集合吗?如果是这样:

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));
于 2013-07-02T23:54:56.110 回答
1
db.Badges.Where(b=>!myUser.UserBadges.Contains(b));
于 2013-07-02T23:54:08.753 回答