Следующий код работает хорошоЕсть ли разница между db.Categories и Список <Category>
IEnumerable<GroupedSelectListItem> groupList = db.Categories.Select(p => new GroupedSelectListItem()
{
GroupKey = p.ParentCategory.Name,
GroupName = p.ParentCategory.Name,
Text = p.Name,
Value = p.Name
});
Хотя приведенный ниже код генерирует ссылка на объект не указывает на ошибки экземпляра
List<Category> orderedList = new List<Category>();
var rootList = db.Categories.Where(c => c.ParentCategoryId == null).ToList();
foreach (var item in rootList)
{
orderedList.Add(item);
if (item.SubCategories.Count != 0)
{
foreach (var subcat in item.SubCategories)
{
orderedList.Add(subcat);
if (subcat.SubCategories.Count != 0)
{
foreach (var subsubcat in subcat.SubCategories)
{
orderedList.Add(subsubcat);
}
}
}
}
}
IEnumerable<GroupedSelectListItem> groupList = orderedList.Select(p => new GroupedSelectListItem()
{
GroupKey = p.ParentCategory.Name,
GroupName = p.ParentCategory.Name,
Text = p.Name,
Value = p.Name
});
Ошибка Деталь
Линия 54: IEnumerable = orderedList.Select списка группы (р => нового GroupedSelectListItem()
Примечания: таблица для категорий в базе данных содержит элемент с ParentCategoryId для некоторых записей, равного нуль
насчет показывая, где именно вы получите нулевое ссылочное исключение ... –
@LadislavMrnka, жаль я не очень хорошо разбираюсь в отладке и трассировке, но я добавил красную строку текста, показанного с сообщением об ошибке в браузере –