少し複雑なSQLクエリがあり、コードベースに使用しているLINQ式の構文に変換しようとしています。ただし、オンラインの誰もがクエリ構文を使用しているようです。そのため、正しい答えを見つけるのは非常に困難です。
クエリは次のとおりで、私が求めているものを正確に返します(このクエリを実行するには、おそらくもっと良い方法があります。お気軽に提案してください)。
SELECT e.*, ce.Certificate_ID
FROM FCERTSTest.dbo.Entities AS e
INNER JOIN FCERTSTest.dbo.RequirementEntries AS re
ON re.Position_ID = e.EntityPosition_ID
LEFT JOIN FCERTSTest.dbo.CertificateEntries AS ce
ON ce.Entity_ID = e.EntityID AND ce.Certificate_ID = re.Certificate_ID
WHERE ce.Certificate_ID IS NULL
問題はこれを変換することです。これまでのところ、私が持っているのは;
List<Entities> unqualified = new List<Entities>();
unqualified = Entities.Join(RequirementEntries,
ent => ent.EntityPosition_ID,
req => req.Position_ID,
(ent, req) => ent).ToList();
私がインターネットから引き出したもの...正直なところ、クエリを100%理解していませんが、ポジションに要件があるエンティティを取得します。これは、本来の目的です。
最後に、誰かがSQLステートメントの残りの部分を変換するのを手伝ってくれるなら、それは大いにありがたいです。