Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ查询空引用异常_Linq_Silverlight_Exception_Null - Fatal编程技术网

LINQ查询空引用异常

LINQ查询空引用异常,linq,silverlight,exception,null,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,

我有下一个问题:

  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**
                      };

并且给我一个例外,请帮忙

发生这种情况可能是因为以下原因之一:

cu为空 ruc.Permisos中的一个元素为null,导致b.IdUsuario上出现异常 如果是后者,您可以通过添加以下内容来处理:

var bPermisos = from b in ruc.Permisos
                where b != null && b.IdUsuario == cu.Id
                 // ... rest of your code

首先,我认为第一个查询可以重写为:

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

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

请指定引发异常的行。是的是重用,因为Permisos是一个表,其foreing键为Cat_Perfil和Cat_Usuario,而Cat_Perfil的外键为Cat_Sistema,我想做的是显示查询bPermisos中的Cat_Perfil列,但使用的不是ID,而是ID的名称。在本例中,Cat_Sistema,请告诉我是否编写了混淆的代码。thanx!!好的,问题是当使用select语句时,您正在创建Permiso类型的新对象,并设置ID值。该对象没有来自任何其他表或任何属性(指定的表或属性除外)的数据。您可以在查询中提取该数据,并选择聚合集合属性,或者不使用select,或者您可以针对其他表编写第二个查询,传递从第一个查询中获得的ID。好的,现在它带来了数据,thanx!现在的问题是,我看不到它,它没有绑定到datagrid,是silverlight的一个案例,可以在这里询问它?当然,但是您应该针对该问题创建一个新问题。您可以包含指向此问题的链接以供参考。