LINQ查询null引用异常

时间:2010-03-08 19:02:08

标签: linq silverlight exception null

我有下一个查询:

  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 个答案:

答案 0 :(得分:1)

对于初学者,我认为第一个查询可能可能被重写为:

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

除此之外,还不清楚你的代码在做什么。您似乎正在重新投影已有的结果 - 获取已知类型的项目并创建匿名类型来保存它们。此外,第二个投影是访问在第一个查询中未选择的一堆成员。

答案 1 :(得分:0)

由于以下任何原因,可能会发生这种情况:

  • cunull
  • ruc.Permisos中的一个元素是null,导致b.IdUsuario上的例外

如果是后者,你可以通过添加:

来解决这个问题
var bPermisos = from b in ruc.Permisos
                where b != null && b.IdUsuario == cu.Id
                 // ... rest of your code