2017-02-18 20 views
0

У меня есть SQL-запрос следующим образом, который я изо всех сил пытаюсь перевести в эквивалентный Linq.SQL to Linq translation - даже возможно

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 также поддерживает встроенные подзапросы, поэтому перевод может быть в основном один к одному - только типичный 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; 

 Смежные вопросы

  • Нет связанных вопросов^_^