.net - 需要那些不在表中的

标签 .net database linq entity

我有一个问题...我有三个表:gamegamelistplayergame 表包含游戏,gamelist 包含所有想玩游戏的玩家,player 表包含所有玩家。

我做了这个查询:

  var query1 = from es in gr.games
           join esh in gr.gameLists on es.id equals esh.gameID
           where es.holdID == play.holdID && esh.playerID.HasValue && esh.playerID == personID
                                    select es;

此查询获取玩家已注册的所有游戏...但我如何获取他未注册的所有游戏?有什么提示或想法吗?

最佳答案

您可以简单地反转加入条件,即选择gameListsgame项> 表格。
但是,由于 LINQ 仅支持 equi-join ,您必须使用 cross join 来表达它使用 where 子句过滤:

var results = from es in gr.games
              from esh in gr.gameLists
              where es.id != esh.gameID &&
                    esh.playerID.HasValue && esh.playerID == personID
              select es;

关于.net - 需要那些不在表中的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398263/

相关文章:

c# Linq select join on select group by 收藏

c# - 如何使用固定值对 linq 进行排序并使用另一种排序显示所有其余内容

c# - 在 Mongodb C# 中使用 AsQueryable 进行过滤 - ExpandoObject

c# - 类似命名方法的.NET 扩展方法冲突解决?

mysql - 如何为数据库实现 ACID 模型?

.net - 比较两个非整数的整数部分的最佳方法是什么?

java - H2 和 HSQLDB 哪个更好?

database - 如何查找所有房地产列表数据?

c# - .NET 跟踪日志查看器

c# - WPF AppDomain UnhandledException 处理程序超时