Новичок в Linq, извиняюсь, если это базовый вариант. Этот запрос вызывает ошибку {"Невозможно привести DBNull.Value к типу 'System.Int64'. Используйте тип, допускающий значение NULL."}, Когда я перечисляю результаты.
private void AddLevels(long rootid)
{
var results = from row in data.AsEnumerable()
where row.Field<long>("ParentID") == rootid
select row;
foreach (DataRow row in results)
{
//do stuff
}
}
Столбец ParentID принимает значения NULL - нужно ли мне обрабатывать их отдельно?
РЕДАКТИРОВАТЬ2: Фактическое решение ниже, которое по-прежнему использует Linq.
РЕДАКТИРОВАТЬ: Я решил эту проблему, отказавшись от Linq и просто используя вместо этого оператор DataTable.Select. Если у кого-то есть информация о разнице в производительности, мне было бы интересно.