Как перевести оператор SQL в Linq - PullRequest
0 голосов
/ 02 февраля 2012

Я не знаю, как перевести Sql-оператор с объединением и подзапросом в linq. Следующим является SQL-оператор, который я пытаюсь перевести .. Пожалуйста, помогите

Select product.Name from product where Product.Id in( select ProductId from 
SaleDetail s join Sale s1 on s.SaleId=s1.Id where s.SaleId in(select Id from Sale  where sale.CustomerId=17264))

1 Ответ

2 голосов
/ 02 февраля 2012

Примерно так (где db - контекст данных linq):

var result= (
        from p in db.Product
        where
            (
                from s in db.SaleDetail
                join se in db.Sale
                    on s.SaleId equals se.Id
                where
                    (
                        from s2 in db.Sale
                        where s2.CustomerId==17264
                        select s2.Id
                    ).Contains(s.SaleId)
                select s.ProductId
            ).Contains(p.Id)
        select new
        {
            p.Name
        }
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...