2017-02-18 16 views
0

私はそれと同等のLinqに翻訳するのに苦労している次のようなSQLクエリを持っています。SQLからLinqへの翻訳 - それは可能ですか

SELECT * 
FROM Product A 
WHERE NOT EXISTS 
(
    SELECT * FROM Vendors B JOIN ThirdPartyProduct C 
    ON B.ProductId = C.ExternalProductId 
    WHERE A.ProductCode = C.PrdouctCode AND C.SupportCode 
) 

は、私は、私も参加持っているので、私はLINQの中でそれをうまくする方法がわからない、しかし、クエリの一部を非存在行うためにどれを使用することができます知っています。ここの助けは非常に高く評価されます。

+0

ことは可能ですが、あなたはLINQクエリを実装しようとしたアレンジ(モデルおよびなど)とあなたのコードを含める必要があります。 – kat1330

答えて

2

LINQはまた、インラインサブクエリをサポートしていますので、翻訳は基本的に1対1であることができ - ちょうど典型的なLINQ selectが最後とサブクエリの後に行くパラメーターなしAny行きます。つまり、SQL NOT EXISTS (subquery)はLINQ !(subquery).Any()に変換されます。このような

何か:

from a in db.Product 
where !(from b in db.Vendors 
     join c in db.ThirdPartyProduct 
     on b.ProductId equals c.ExternalProductId 
     where a.ProductCode == c.ProductCode && c.SupportCode 
     select b).Any() 
select a; 
関連する問題