次の SQL クエリに相当するものを返すLINQ クエリまたはラムダ式の適切な構文に頭を悩ませようとしています。
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 値) と、そのバージョンがベータ版かどうかを示すブール型プロパティの両方を持つツール オブジェクトがあります。
これが私の最初の試みでした:
var tools = from t in session.CachedTools where !t.IsBetaVersion select t;
間違った結果セットが返されることに気付き、NOT IN ロジックを使用してサブクエリを見つけようとして迷子になりました。
ありがとう!