Как я могу исправить эту функцию LINQ? - PullRequest
2 голосов
/ 16 августа 2011

Я использую этот код:

            var nextLevel = (from p in cd.Objective
                             where p.Parent_ObjectiveID == null
                             select p.Level);

И он работает, к тому времени он не возвращает никаких элементов (потому что в моей базе данных нет ни одного элемента).Хотя я хотел бы знать, что Верхний уровень делает это:

            var nextLevel = (from p in cd.Objective
                             where p.Parent_ObjectiveID == null
                             select p.Level).Max();

Но я получаю ошибку:

Нулевое значение не может быть назначено члену с типом System.Int32, который являетсянеобнуляемый тип значения.

Parent_ObjectiveID - это обнуляемый тип int и уровень только в int.

1 Ответ

4 голосов
/ 16 августа 2011

Макс хочет вернуть int, потому что это тип p.Level, но вынужден вернуть ноль (потому что в запросе нет элементов).Если вы преобразуете p.Level в обнуляемое int, ваш запрос должен работать.

var nextLevel = (from p in cd.Objective
                 where p.Parent_ObjectiveID == null
                 select (int?)p.Level).Max();
...