我有下一个查询:
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**
};
并且给我一个例外,请帮忙!
答案 0 :(得分:1)
对于初学者,我认为第一个查询可能可能被重写为:
var bPermisos = ruc.Permisos.Where(b => b.IdUsuario == cu.Id);
除此之外,还不清楚你的代码在做什么。您似乎正在重新投影已有的结果 - 获取已知类型的项目并创建匿名类型来保存它们。此外,第二个投影是访问在第一个查询中未选择的一堆成员。
答案 1 :(得分:0)
由于以下任何原因,可能会发生这种情况:
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