Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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# SQL/Linq查询从多对多选择_C#_Sql_Entity Framework_Linq - Fatal编程技术网

C# SQL/Linq查询从多对多选择

C# SQL/Linq查询从多对多选择,c#,sql,entity-framework,linq,C#,Sql,Entity Framework,Linq,我的SQL数据库中有以下(简化的)结构。 现在,我想选择用户尚未加入的所有组。 如果使用Linq/Entity框架编写查询会有所帮助,但我也可以使用SQL语句 我尝试使用Include(使用EF): 在查询中,然后使用: .Where(g => g.Group_User.UserId != userId) 但这样做不起作用,而且可能完全不是进行此类查询的正确方法 谢谢你的阅读 我想选择用户尚未加入的所有组 因此,您希望所有组都没有具有此用户ID的组用户,所以请使用!任何和=: var

我的SQL数据库中有以下(简化的)结构。

现在,我想选择用户尚未加入的所有组。 如果使用Linq/Entity框架编写查询会有所帮助,但我也可以使用SQL语句

我尝试使用Include(使用EF):

在查询中,然后使用:

.Where(g => g.Group_User.UserId != userId) 
但这样做不起作用,而且可能完全不是进行此类查询的正确方法

谢谢你的阅读

我想选择用户尚未加入的所有组

因此,您希望所有组都没有具有此
用户ID的组用户,所以请使用
!任何
=

var q = db.Group.Include(g => g.Group_User)
    .Where(g => !g.Group_User.Any(gu => gu.UserId == userId));

是的,这起作用了,ReSharper建议进行此更改:
g.Group\u AspNetUsers.All(gu=>gu.AspNetUsersid!=userId
这两者之间有很大的区别吗?@lordvlad30:不,resharper总是尽量避免使用
。使用你觉得更可读的。两者都会产生相同的结果,同样有效。我更喜欢
!Any
,因为这是你需求的翻译谢谢你的快速回答还有帮助!(没有足够的声望来提升投票率,但你值得)
var q = db.Group.Include(g => g.Group_User)
    .Where(g => !g.Group_User.Any(gu => gu.UserId == userId));