c# ef linq Группировка по количеству - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь (и не могу) преобразовать приведенный ниже запрос sql в запрос linq. Буду признателен за любой совет о том, как добиться подсчета и суммы на левых соединениях:

SELECT      cts.CategoryStructureID,
            cts.Description,
            COUNT(gli.ProductId) AS UniqueProducts,
            ISNULL(SUM(gli.Quantity),0) AS TotalProducts
FROM        CategoryStructure cts
LEFT JOIN   CategoryStructure cs
ON          LEFT(cs.StructureCode, 3) = cts.StructureCode
JOIN        Category_Product cp
ON          cs.CategoryStructureID = cp.CategoryStructureID
JOIN        Product p
ON          cp.ProductId = p.ProductId
LEFT JOIN   GiftListItem gli
ON          p.ProductId = gli.ProductId AND gli.GiftListId = @giftListId
GROUP BY    cts.CategoryStructureID,
            cts.Description

Желаемый результат соответствует приведенным ниже:

CategoryStructureID Description             UniqueProducts  TotalProducts
1397                Garden & DIY            2               40
1366                Bed & Bath              16              114
1186                Tableware               18              322
1435                Travel & Experiences    0               0
1461                Funds                   0               0
1244                Home & Furniture        4               24
1308                Kitchen                 2               40
1411                Lifestyle               0               0
...