2016-08-11 2 views
0

Раньше я поднимал вопрос о том, как сгруппировать, используя linq в C#. Ниже приведена ссылка. Теперь я получаю сообщение об ошибке, когда одна из моих групп по ключу равна null. в основном яC# Linq group по нескольким столбцам Получение Нет строки с данным идентификатором существует

var result = collection.GroupBy(item => new { item.PNO, item.GCode }) 
      .Select(grouping => new 
      { 
       PNO = grouping.Key.PNO, 
       GCode = grouping.Key.GCode,//when this GCode is null, getting error 
       Options = grouping.Select(item => new { Color = item.Color, Size = item.Size, Amount = item.Amount }).ToList() 
      }).ToList(); 

Ошибка я получаю что-то вроде:

No row with the given identifier exists[....] 

Может кто-нибудь пожалуйста, предложить мне решение для этого?

C# Linq how to use group by to get the desired output

Благодаря

+0

, когда я запускаю этот код на некотором образце eith данных '' GCode' Null это работает. Пожалуйста, покажите, какие данные у вас есть. –

+0

В основном я получаю данные из результата запроса NHibernate. –

ответ

0

При поиске ошибок я нашел this и this.

Другим возможным решением является использование ??

var result = collection.GroupBy(item => new { item.PNO ?? string.Empty, item.GCode ?? string.Empty}) 
      .Select(grouping => new 
      { 
       PNO = grouping.Key.PNO, 
       GCode = grouping.Key.GCode,//when this GCode is null, getting error 
       Options = grouping.Select(item => new { Color = item.Color, Size = item.Size, Amount = item.Amount }).ToList() 
      }).ToList(); 
+0

@Mukil - Помогло ли вам это решить? –

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