Новичок в Linq, поэтому извиняюсь, если это основной. Этот запрос выдает ошибку {"Невозможно привести DBNull.Value к типу 'System.Int64'. Пожалуйста, используйте обнуляемый тип."}, Когда я перечисляю результаты.
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 принимает пустые значения - нужно ли обрабатывать их отдельно?
EDIT2: Фактическое решение ниже, которое по-прежнему использует Linq.
РЕДАКТИРОВАТЬ: Я решил эту проблему, отказавшись от Linq и просто вместо этого использовать оператор DataTable.Select. Если бы кто-то получил информацию о разнице в производительности, мне было бы интересно.