我试图围绕 LINQ 查询或返回与以下 SQL 查询等效的 lambda 表达式的正确语法来思考:
SELECT *
FROM tool t
WHERE t.UniqTool
NOT IN (SELECT t1.uniqtool
FROM tool t1
INNER JOIN [version] v ON v.UniqTool = t1.UniqTool
AND v.IsBetaVersion = 1)
基本上,我想获取还没有测试版的工具列表。我有一个工具对象,它同时具有 UniqTool(ID 值)和指示该版本是否为 beta 的布尔属性。
这是我最初的尝试:
var tools = from t in session.CachedTools where !t.IsBetaVersion select t;
我意识到它给了我错误的结果集,我在试图用 NOT IN 逻辑找出子查询时迷路了。
谢谢!