Исключение пустой ссылки LINQ-запроса - PullRequest
0 голосов
/ 08 марта 2010

У меня следующий запрос:

  var bPermisos = from b in ruc.Permisos
                      where b.IdUsuario == cu.Id
                          select new Permisos(){
                              Id=b.Id,
                              IdUsuario=b.Id,
                              IdPerfil=b.Id,
                              Estatus=b.Estatus
                          };
  var qSisPer = from perm in bPermisos
                      **select new {                    
                          perm.IdPerfil,
                          perm.Cat_Perfil.Nivel,
                          perm.Cat_Perfil.Nombre,   
                          Nombre_Sistem=perm.Cat_Perfil.Cat_Sistema.Nombre**
                      };

И бросает мне исключение, помогите плз!

Ответы [ 2 ]

1 голос
/ 08 марта 2010

Для начала, я думаю, что первый запрос возможно будет переписан как:

var bPermisos = ruc.Permisos.Where(b => b.IdUsuario == cu.Id);

Помимо этого, довольно непонятно, что делает ваш код. Вы, кажется, перепроектируете результаты, которые у вас уже есть - берете элементы известного типа и создаете анонимный тип для их хранения. Кроме того, во второй проекции осуществляется доступ к группе элементов, которые не были выбраны в первом запросе.

0 голосов
/ 08 марта 2010

Это может произойти из-за любого из следующего:

  • cu - это null
  • Один элемент в ruc.Permisos равен null, вызывая исключение для b.IdUsuario

Если это последнее, вы можете просто обработать это, добавив:

var bPermisos = from b in ruc.Permisos
                where b != null && b.IdUsuario == cu.Id
                 // ... rest of your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...