实体框架中的 System.NotSupportedException (ASP.NET MVC)

购买

我有一个带有实体框架的 ASP.NET MVC5 项目。我有成组的人(Pajtas班级)(每个组都有一个唯一的编号)。用户可以编辑人员信息,但前提是用户对该人员所在的组具有权限。

每个用户都有一个IfiAdatlap对象,该IfiAdatlap对象具有编号组的权限。所以我有一个简单的许可类:

        public class CsoportHozzaferes
        {
            [Required]
            [Key]
            [Column(Order = 1)]
            public int Csoport { get; set; }
            [Required]
            [Key]
            [Column(Order = 2)]
            public virtual IfiAdatlap IfiAdatlap { get; set; }
        }

在我的控制器中,我有一个功能来检查当前用户的IfiAdatlap对象是否有权访问用户想要编辑其信息的人所在的组。首先,我获取当前用户的ApplicationUser对象 ( user),然后尝试获取csoportok用户有权检查此人的组号 ( pajtas.Csoport) 是否在此列表中的组列表( )。

private void PajtasHozzaferesCheck(Pajtas pajtas)
        {
            var userName = User.Identity.Name;
            var user = db.Users.FirstOrDefault(x => x.UserName == userName);
            var csoportok = db.CsoportHozzaferesek.Where(h => h.IfiAdatlap != null && h.IfiAdatlap == user.Adatlap).Select(csh => csh.Csoport).ToList();
            if (!(pajtas.Csoport != null && csoportok.Contains((int)pajtas.Csoport)))
            {
                var tanfolyamok = db.TanfolyamHozzaferesek.Where(h => h.IfiAdatlap != null && h.IfiAdatlap == user.Adatlap).Select(tfh => tfh.Tanfolyam).ToList();
                var tfosztalyok = db.TanfolyamHozzaferesek.Where(h => h.IfiAdatlap != null && h.IfiAdatlap == user.Adatlap).Select(tfh => tfh.Osztaly).ToList();
                if (!(pajtas.TanfolyamOsztaly != null && pajtas.TanfolyamSorszam != null && tanfolyamok.Contains((int)pajtas.TanfolyamSorszam) && tfosztalyok.Contains((TanfolyamOsztaly)pajtas.TanfolyamOsztaly) && tanfolyamok.IndexOf((int)pajtas.TanfolyamSorszam) == tfosztalyok.IndexOf((TanfolyamOsztaly)pajtas.TanfolyamOsztaly)))
                {
                    var tanfvez = db.TanfolyamvezetesHozzaferesek.Where(h => h.IfiAdatlap != null && h.IfiAdatlap == user.Adatlap).Select(tfvh => tfvh.Tanfolyam).ToList();
                    if (!(pajtas.TanfolyamSorszam != null && tanfvez.Contains((int)pajtas.TanfolyamSorszam)))
                    {
                        if (!(User.IsInRole("Nevelo") || User.IsInRole("Admin")))
                        {
                            //nincs jogosultság
                            throw new HttpException((int)System.Net.HttpStatusCode.Forbidden, "Hozzáférés megtagadva");
                        }
                    }
                }
            }
        }

但我在行中遇到异常var csoportok = ...

System.NotSupportedException: 'Unable to create a constant value of type 'Ifi.Models.Adatlap'. Only primitive types or enumeration types are supported in this context.'

谢谢你的帮助!

八维连接器

我认为Adaplap是一个 entity.Change where condition 使用 id 而不是比较实例,例如:

.Where(h => h.IfiAdatlap != null && h.IfiAdatlap.Id == user.Adatlap.Id)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC System.NotSupportedException LINQ到实体查询

来自分类Dev

Asp.NET Core MVC Razor页面渲染中的NotSupportedException

来自分类Dev

带有实体框架的ASP .NET MVC 5中的并发

来自分类Dev

在实体框架ASP.NET MVC中的LINQ到实体中构造查询

来自分类Dev

使用实体框架更新ASP.NET MVC应用程序中的相关实体

来自分类Dev

在联结表asp.net MVC中插入记录4实体框架6

来自分类Dev

ASP.NET 5 MVC 6中没有实体框架的身份验证和授权

来自分类常见问题

c#获取每个组ASP.NET MVC实体框架中存在的记录

来自分类Dev

Asp.NET MVC 5实体框架中的无效对象名称“ dbo.AspNetUsers”

来自分类Dev

无法将值NULL插入ASP.NET MVC实体框架中的列

来自分类Dev

将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

来自分类Dev

比较C#ASP.NET MVC LINQ实体框架中的两个列表

来自分类Dev

在ASP.NET MVC 6中获取会话值OnConfiguring实体框架7

来自分类Dev

使用实体框架6在ASP.NET MVC 5中显示单个数据列

来自分类Dev

InvalidOperationException:序列不包含任何元素。在带有实体框架的Asp.net Core MVC中

来自分类Dev

带有实体框架的ASP.NET Core MVC中的索引方法不接受参数

来自分类Dev

如何使用实体框架在ASP.NET MVC中检查删除操作是否成功

来自分类Dev

c#获取每个组ASP.NET MVC实体框架中存在的记录

来自分类Dev

在联结表asp.net MVC中插入记录4实体框架6

来自分类Dev

比较C#ASP.NET MVC LINQ实体框架中的两个列表

来自分类Dev

将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

来自分类Dev

使用实体框架时ASP.NET MVC中的Fluent API含义

来自分类Dev

使用实体框架和ASP.NET MVC从列表中反转分区结果

来自分类Dev

Asp.NET MVC 5实体框架中的无效对象名称“ dbo.AspNetUsers”

来自分类Dev

在asp net core实体框架mvc中从数据库绑定菜单和子菜单

来自分类Dev

如何使用实体框架在 ASP.NET MVC 中调用存储过程

来自分类Dev

如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

来自分类Dev

ASP.net中的实体框架

来自分类Dev

ASP.NET vNext MVC和实体框架问题

Related 相关文章

  1. 1

    ASP.NET MVC System.NotSupportedException LINQ到实体查询

  2. 2

    Asp.NET Core MVC Razor页面渲染中的NotSupportedException

  3. 3

    带有实体框架的ASP .NET MVC 5中的并发

  4. 4

    在实体框架ASP.NET MVC中的LINQ到实体中构造查询

  5. 5

    使用实体框架更新ASP.NET MVC应用程序中的相关实体

  6. 6

    在联结表asp.net MVC中插入记录4实体框架6

  7. 7

    ASP.NET 5 MVC 6中没有实体框架的身份验证和授权

  8. 8

    c#获取每个组ASP.NET MVC实体框架中存在的记录

  9. 9

    Asp.NET MVC 5实体框架中的无效对象名称“ dbo.AspNetUsers”

  10. 10

    无法将值NULL插入ASP.NET MVC实体框架中的列

  11. 11

    将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

  12. 12

    比较C#ASP.NET MVC LINQ实体框架中的两个列表

  13. 13

    在ASP.NET MVC 6中获取会话值OnConfiguring实体框架7

  14. 14

    使用实体框架6在ASP.NET MVC 5中显示单个数据列

  15. 15

    InvalidOperationException:序列不包含任何元素。在带有实体框架的Asp.net Core MVC中

  16. 16

    带有实体框架的ASP.NET Core MVC中的索引方法不接受参数

  17. 17

    如何使用实体框架在ASP.NET MVC中检查删除操作是否成功

  18. 18

    c#获取每个组ASP.NET MVC实体框架中存在的记录

  19. 19

    在联结表asp.net MVC中插入记录4实体框架6

  20. 20

    比较C#ASP.NET MVC LINQ实体框架中的两个列表

  21. 21

    将JSON数据对象存储到ASP.NET MVC(实体框架)中的数据库

  22. 22

    使用实体框架时ASP.NET MVC中的Fluent API含义

  23. 23

    使用实体框架和ASP.NET MVC从列表中反转分区结果

  24. 24

    Asp.NET MVC 5实体框架中的无效对象名称“ dbo.AspNetUsers”

  25. 25

    在asp net core实体框架mvc中从数据库绑定菜单和子菜单

  26. 26

    如何使用实体框架在 ASP.NET MVC 中调用存储过程

  27. 27

    如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

  28. 28

    ASP.net中的实体框架

  29. 29

    ASP.NET vNext MVC和实体框架问题

热门标签

归档