Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ在实体框架中执行这种类型的连接_C#_Sql_Linq_Entity Framework - Fatal编程技术网

C# 如何使用LINQ在实体框架中执行这种类型的连接

C# 如何使用LINQ在实体框架中执行这种类型的连接,c#,sql,linq,entity-framework,C#,Sql,Linq,Entity Framework,我有一个班级徽章:(例如) 通过类UserBadge获得用户自己的徽章(这是必需的) 因此: 我只需要获得用户当前没有的徽章 我该怎么写这个LINQ?以下是我的PSEDOO代码示例: db.Badges(Where(b => new query(!myUser.UserBadges.contains(b)); 您的徽章上是否有用户收藏?如果是: db.Badges.Where(b=>!b.Users.Any(u=>u.UserId==myUserId)) 否则,您可以执行以下操作: Li

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

通过类UserBadge获得用户自己的徽章(这是必需的)

因此:

我只需要获得用户当前没有的徽章

我该怎么写这个LINQ?以下是我的PSEDOO代码示例:

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

您的
徽章上是否有用户收藏?如果是:

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));
列出ownedBadges=myUser.Badges.Select(x=>x.BadgeId.ToList();
其中(b=>!ownedBadges.Contains(b.BadgeId));

您的
徽章上是否有用户收藏?如果是:

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));
列出ownedBadges=myUser.Badges.Select(x=>x.BadgeId.ToList();
其中(b=>!ownedBadges.Contains(b.BadgeId));

需要一个
ToList()
选择之后
呼叫I thinkThank,@Sahuagin。更正。需要一个
ToList()
Select
呼叫我思谢谢@Sahuagin之后。更正。
db.Badges(Where(b =>
new query(!myUser.UserBadges.contains(b));
db.Badges.Where(b=>!myUser.UserBadges.Contains(b));
List<int> ownedBadges = myUser.Badges.Select(x=> x.BadgeId).ToList();
db.Badges.Where(b => !ownedBadges.Contains(b.BadgeId));