Как конфертировать в Linq - PullRequest
0 голосов
/ 23 июня 2018

Как преобразовать следующий запрос в linq

SELECT
    a.ProductId,
    a.Name,
    a.Description,
    b.Quoteid,
    b.Productid,
    b.Quantity,
    b.OriginalPrice
FROM
    Products        AS a
    LEFT JOIN
    QuoteDtails AS b
    ON a.ProductId = b.ProductId
    AND b.QuoteId = 200;

Не знаю, куда добавить условие AND.

Спасибо и с уважением

Ответы [ 2 ]

0 голосов
/ 23 июня 2018

Вы можете добавить условие AND в запрос LINQ следующим образом:

var res = from p in products
                  join q in quoteDtails on new { Criteria1 = p.ProductID, Criteria2 = 200 } equals new { Criteria1 = q.Productid, Criteria2 = q.Quoteid }
                  select new
                  {
                      ProductId_P = p.ProductID,
                      Name = p.Name,
                      Description = p.Description,
                      Quoteid = q.Quoteid,
                      Productid_Q = q.Productid,
                      Quantity = q.Quantity,
                      OriginalPrice = q.OriginalPrice
                  };
0 голосов
/ 23 июня 2018

Вы можете попробовать это linq, если вы хотите написать LEFT JOIN из linq, вам нужно добавить

в [временную коллекцию] из [Левого соединения talbe collection] в [временная коллекция] .DefaultIfEmpty ()

после Linq join

выглядит так.

from ss in Products
join aa in QuoteDtails
on ss.ProductId equals aa.ProductId into temp
from ds in temp.DefaultIfEmpty()
where ds.QuoteId = 200
select new 
{ 
    ProductId_P = ss.ProductId,
    Name = ss.Name,
    Description = ss.Description,
    Quoteid = ds.Quoteid,
    Productid_Q = ds.Productid,
    Quantity = ds.Quantity,
    OriginalPrice = ds.OriginalPrice
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...