ASP.Net Core / EF Core:添加迁移后,身份用户类和自定义类之间存在多对多关系,堆栈溢出

亚瑟·奥

我正在尝试配置Knowledge和ApplicationUser类之间的多对多关系。在“ add-migration”构建成功之后,但是我收到堆栈溢出。我找不到有关此问题的任何特定详细信息。

    public class Question
    {
        [Key]
        public int Id { get; set; }
        public string QuestionString { get; set; }
        public  Knowledge Knowledge { get; set; }
    }

身份用户类别

    public class ApplicationUser: IdentityUser
    {
        public virtual ICollection<UserKnowledge> Knowledges { get; set; }
    }


    public class Knowledge
    {
        [Key]
        public int Id { get; set; }
        public string KnowledgeName { get; set; }
        public virtual ICollection<Question> Questions { get; set; }
        public virtual ICollection<UserKnowledge> Users { get; set; }
    }

加入实体类


    public class UserKnowledge
    {
         [Key]
         public int Id { get; set; }
         public string UserId { get; set; }
         [ForeignKey("UserId")]
         public  ApplicationUser User { get; set; }
         public int KnowledgeId { get; set; }
         [ForeignKey("KnowledgeId")]
         public  Knowledge Knowledge { get; set; }
    }


    public class ApplicationDbContext : IdentityDbContext
    {
        public ApplicationDbContext(): base()
        {}
    
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
        {}
    
        public DbSet<UserKnowledge> UserKnowledges { get; set; }
        public DbSet<Question> Questions { get; set; }
        public DbSet<Knowledge> Knowledges { get; set; }
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
             modelBuilder.Entity<UserKnowledge>()
                  .HasKey(ub => ub.Id);
    
             modelBuilder.Entity<UserKnowledge>()
                  .HasOne(ub => ub.Knowledge)
                  .WithMany(u =>u.Users)
                  .HasForeignKey(ub => ub.KnowledgeId);
    
             modelBuilder.Entity<UserKnowledge>()
                  .HasOne(ub => ub.User)
                  .WithMany(u => u.Knowledges)
                  .HasForeignKey(ub => ub.UserId);
             modelBuilder.Entity<Knowledge>().HasKey(g => g.Id);
             modelBuilder.Entity<Knowledge>().HasMany(q => q.Questions).WithOne(q => q.Knowledge);
             modelBuilder.Entity<Question>().HasKey(g => g.Id);
                
                OnModelCreating(modelBuilder);
            }
        }

有人可以告诉我我想念什么吗?

伊万·斯托夫

当然,具体的堆栈溢出问题是由OnModelCreating覆盖的最后一行引起的,该行会自我调用

OnModelCreating(modelBuilder);

它应该改为调用基本方法

base.OnModelCreating(modelBuilder);

和(不相关的)IdentityDbContext派生类,它应该是您自己的配置之前的第一行,因此您可以在需要时覆盖它的操作

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    // Your code goes here
}

两者也不相关,但是在使用自定义身份实体时,您应该真正继承其中一个泛型IdentityDbContext<...>基类,并将您的实体类型作为泛型类型参数传递。在这种情况下,IdentityDbContext<ApplicationUser>

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    // ...
}

否则,EF会将模型视为使用带有鉴别符列的TPH(按层次结构表)数据库继承策略,这通常不是您期望/想要的。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Asp.Net Core EF Core 多对多关系更新命令

来自分类Dev

ASP.NET Core MVC 和 EF Core 1.1

来自分类Dev

在ASP.NET Core WebApplicationFactory中重写EF Core DbContext

来自分类Dev

ASP net Core Razor Pages - EF 和视图的拆分模型

来自分类Dev

ASP.NET Core EF 未找到导航属性

来自分类Dev

具有EF Core迁移和IHttpContextAccessor的ASP.NET Core(3.1)

来自分类Dev

带有ASP.NET Core 3.0和EF Core的多租户应用程序

来自分类Dev

在没有 EF Core 参考的 ASP.NET 项目中使用 EF 存储?

来自分类Dev

带有EF Core和CosmosDB的ASP.Net Core-IdentityRole问题

来自分类Dev

在EF Core和ASP.NET Core中处理并发的最佳实践?

来自分类Dev

ASP.NET Core 和 EF Core 1.1 - 使用存储过程显示数据

来自分类Dev

向 ASP.Net Identity Core 用户添加声明失败,出现 EF 插入错误

来自分类Dev

Asp.net Core EF Core内部联接,以及数据到视图模型

来自分类Dev

Asp.Net Core中的EF Core异步可伸缩性

来自分类Dev

ASP.NET CORE 1.0存储库加载相关数据EF CORE

来自分类Dev

无法使用 EF Core 在 ASP.NET Core 中创建相关实体

来自分类Dev

通过EF迁移将ASP.NET Core部署到Azure

来自分类Dev

如何在ASP.NET Core中使用EF管理多个用户

来自分类Dev

ASP.NET 和 EF Core Web API 为对象中的对象返回 null

来自分类Dev

ASP.NET Core EF Add-Migration命令不起作用

来自分类Dev

如何使用EF Core更新ASP.NET 5中的dbcontext脚手架?

来自分类Dev

具有在SingleView中创建的实体列表的Asp.Net Core MVC EF模型

来自分类Dev

asp.net core ef order by 在声明后不起作用

来自分类Dev

无法在 ASP.NET Core 代码优先 EF 模型中将 Id 设置为主键

来自分类Dev

我可以安全地在ASP.NET Core和EF Core中使用非泛型DbContextOptions吗?

来自分类Dev

在ASP.NET Core 3.1中扩展IdentityUser之后,如何解决EF Core数据库错误?

来自分类Dev

如何使用EF Core 3.1.5解决ASP.net Core应用程序中的空引用异常?

来自分类Dev

ASP .Net Core:多对多关系Get操作

来自分类Dev

带有EF .net 5的ASP.NET Core中的微型探查器出现“未找到”错误

Related 相关文章

  1. 1

    Asp.Net Core EF Core 多对多关系更新命令

  2. 2

    ASP.NET Core MVC 和 EF Core 1.1

  3. 3

    在ASP.NET Core WebApplicationFactory中重写EF Core DbContext

  4. 4

    ASP net Core Razor Pages - EF 和视图的拆分模型

  5. 5

    ASP.NET Core EF 未找到导航属性

  6. 6

    具有EF Core迁移和IHttpContextAccessor的ASP.NET Core(3.1)

  7. 7

    带有ASP.NET Core 3.0和EF Core的多租户应用程序

  8. 8

    在没有 EF Core 参考的 ASP.NET 项目中使用 EF 存储?

  9. 9

    带有EF Core和CosmosDB的ASP.Net Core-IdentityRole问题

  10. 10

    在EF Core和ASP.NET Core中处理并发的最佳实践?

  11. 11

    ASP.NET Core 和 EF Core 1.1 - 使用存储过程显示数据

  12. 12

    向 ASP.Net Identity Core 用户添加声明失败,出现 EF 插入错误

  13. 13

    Asp.net Core EF Core内部联接,以及数据到视图模型

  14. 14

    Asp.Net Core中的EF Core异步可伸缩性

  15. 15

    ASP.NET CORE 1.0存储库加载相关数据EF CORE

  16. 16

    无法使用 EF Core 在 ASP.NET Core 中创建相关实体

  17. 17

    通过EF迁移将ASP.NET Core部署到Azure

  18. 18

    如何在ASP.NET Core中使用EF管理多个用户

  19. 19

    ASP.NET 和 EF Core Web API 为对象中的对象返回 null

  20. 20

    ASP.NET Core EF Add-Migration命令不起作用

  21. 21

    如何使用EF Core更新ASP.NET 5中的dbcontext脚手架?

  22. 22

    具有在SingleView中创建的实体列表的Asp.Net Core MVC EF模型

  23. 23

    asp.net core ef order by 在声明后不起作用

  24. 24

    无法在 ASP.NET Core 代码优先 EF 模型中将 Id 设置为主键

  25. 25

    我可以安全地在ASP.NET Core和EF Core中使用非泛型DbContextOptions吗?

  26. 26

    在ASP.NET Core 3.1中扩展IdentityUser之后,如何解决EF Core数据库错误?

  27. 27

    如何使用EF Core 3.1.5解决ASP.net Core应用程序中的空引用异常?

  28. 28

    ASP .Net Core:多对多关系Get操作

  29. 29

    带有EF .net 5的ASP.NET Core中的微型探查器出现“未找到”错误

热门标签

归档