Есть ли способ установить значение по умолчанию (0 вместо нуля) для объединения группы в самом запросе LINQ? - PullRequest
0 голосов
/ 22 апреля 2019

Я получил запрос LINQ, который включает две таблицы, в то время как некоторые записи не включены в дочернюю таблицу. Я уже использую GROUP JOIN с DEFAULTIFEMPTY (), и он работал до того, как я добавил таблицу ITM_WH, которая возвращает числовую сумму. Как я могу справиться с этой ошибкой? " Нулевое значение не может быть назначено члену с типом system.Decimal, который является необнуляемым типом значения "? Зная, что использование WH в ci.DefaultIfEmpty (0) не работает. мне нужен столбец "Запас" для переноса значения 0, если запись не существует

вот мой запрос:

Dim result = From B In database.ITEM_BARCODEs 
            Join i In database.ITEMs On B.ITM_CODE Equals (i.ITM_CODE) 
           Group Join WH In database.ITM_WHs On i.ITM_CODE Equals 
          (WH.ITM_CODE) Into ci = Group From WH In ci.DefaultIfEmpty() Join 
    S In database.SUBGROUPs On i.ITM_SUBGROUP Equals (S.SubGrp_ID) 
        Join G In database.GROUPs On S.SubGrp_PARENTID Equals (G.GRP_ID) 
        Group Join P In database.ITEM_PHOTOs On i.ITM_PROFILE Equals 
     (P.PHOTO_ID) Into co = Group From p In co.DefaultIfEmpty()


       Select BarcodeID = B.BARCODE_ID,
            code = i.ITM_CODE, 
           barcode = B.ITM_BARCODE, 
           Title = i.ITM_TITLE, 
          Stock = WH.OPENING_QTY + WH.STOCK_IN - WH.STOCK_OUT,
           Main_Price = B.ITM_PRICE, Price_lvl_2,
           Subgroup = S.SubGrp_Name, 
           Group = G.GRP_NAME, 
           photo = p.ITM_PHOTO

1 Ответ

0 голосов
/ 23 апреля 2019

Из того, что я могу извлечь из вашего вопроса, я думаю, что простое объединение без группировки может работать для вас, как показано здесь: https://stackoverflow.com/a/3413732/2685093

...