Хотя я проверяю свой IEnumerable на ноль, я все равно получаю нулевое исключение ... почему? - PullRequest
1 голос
/ 07 октября 2010

Как строка 25 в приведенном ниже коде может генерировать следующую ошибку? Я сбит с толку. ProductSuggestions составляет IEnumerable<Product> ProductSuggestions

Line 24: <%if (Model.ProductSuggestions != null) { %>
Line 25:     <%if (Model.ProductSuggestions.Any()) { 

Ссылка на объект не установлена ​​для экземпляра объекта.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

Ответы [ 4 ]

2 голосов
/ 07 октября 2010

Вы уверены, что проблемы в строке 25, а не в строке 24? Попробуйте сделать линию 24

<%if (Model != null && Model.ProductSuggestions != null) { %>

И посмотри, получишь ли ты ту же ошибку. Я думаю, что вы не будете.

0 голосов
/ 08 октября 2010

Оценка запроса (IEnumerable или IQueryable) является потенциальным источником исключений, даже если сам запрос не равен нулю.

0 голосов
/ 07 октября 2010

Я прошу прощения, но на основании информации, которую я дал, эту проблему решить будет нелегко.

После сна я понял, что, хотя я печатал свой список как IEnumerable это действительно было все еще IQueryable, поскольку так получилось из моего запроса LINQ в моем репозитории.При отложенном выполнении IQueryable проблема не становилась очевидной, пока я не вызвал .Count() или .Any() для набора в представлении.

Проблема действительно находилась в хранилище, где у меня был LINQНастройка запроса, которая не учитывает возможное значение NULL.

Итак, ответ был бы следующим: вы идиот, вы уверены, что имеете дело с IEnumerable, а не с IQueryable?И если это действительно IQueryable, вы уверены, что проблема не в самом запросе LINQ, а в том месте, где он выполняется?:)

0 голосов
/ 07 октября 2010

Может ли исключение NullReferenceException ссылаться на члены объекта ProductSuggestions?

Я только недавно столкнулся с проблемой, когда я проверял родительский объект на нулевое значение, но как только я попытался получить доступ к любым дочерним свойствам, я получил исключение NullReferenceException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...