LINQ查询空引用异常

发布于 2024-08-24 12:26:34 字数 748 浏览 2 评论 0原文

我有下一个查询:

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

并且抛出异常,请帮助!

I have the next query:

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

And is throwing me an exception, plz help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花之痕靓丽 2024-08-31 12:26:34

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

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

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

For starters, I think the first query can probably be rewritten as:

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

Beyond that, it is rather unclear what your code is doing. You appear to be re-projecting the results you already have -- taking items of a known type and creating an anonymous type to hold them. Furthermore, the second projection is accessing a bunch of members that were not selected in the first query.

圈圈圆圆圈圈 2024-08-31 12:26:34

发生这种情况的原因可能是以下任一情况:

  • cunull
  • ruc.Permisos 中的一个元素为 null ,导致 b.IdUsuario 出现异常

如果是后者,您可以通过添加以下内容来处理此问题:

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

This could be happening because of any of the following:

  • cu is null
  • One element in ruc.Permisos is null, causing the exception on b.IdUsuario

If it's the latter, you can just handle this by adding:

var bPermisos = from b in ruc.Permisos
                where b != null && b.IdUsuario == cu.Id
                 // ... rest of your code
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文