私は同様の質問のカップルを通過したが、私が望むものを見つけることができませんでした。LINQの条件でEXISTSを使用するには?
「回答」テーブルにIDを持つタグを見つける必要があります。なぜなら、重複を処理するために必要なタグIDを含む複数の回答レコードが存在する可能性があるからです。これが単純な結合を行うことができない理由です。
私はEXISTSを使用することを考えましたが、まだそれを行う方法を理解できませんでした。
これは、これは私が誰かが正しくLINQでこのクエリを実装する方法を提案することができればそれが参考になるノー成功
(from tag in Tags
where tag.Id.Any(from ans in Answers
where ans.StID == tag.Id
&& tag.SchId == 472
&& ans.isValid == true
select ans.ID)
select tag.TagName
とLINQにしようとしたものです作業SQL
SELECT DISTINCT TagName
FROM Tags tag
JOIN Answers ans ON ans.StID = tag.Id
WHERE tag.SchId = 472
AND ans.isValid = 1
です。
この投稿は、「すべて」がそれを行う方法であることを示唆しています。 http://stackoverflow.com/questions/4074013/how-to-do-a-sql-where-exists-in-linq-to-entities。 'Any'を使ったとき、それはしませんでしたか?どのようにチェックしていますか? –
'ここでtag.SchId == 472 && Answers.Any(ans => ans.StID == tag.Id && ans.isValid)' –
@PeterRitchieいいえ、それはタイプintと言っていますか? (これはタグIDの一種ではありません)Any –