为什么EF迁移添加字段

本文关键字:字段 添加 迁移 EF 为什么 | 更新日期: 2023-09-27 18:02:09

我使用Identity 2.0。我有CustomUserRole

public class CustomUserRole : IdentityUserRole<long>
{
}

当我尝试生成迁移时,一切都很好。但如果我添加配置到CustomUserRole

 public class CustomRoleConfiguration : EntityTypeConfiguration<CustomRole>
    {
        public CustomRoleConfiguration()
        {
            Property(r => r.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        }
    }

EF添加字段CustomRole_Id

            CreateTable(
            "dbo.AspNetUserRoles",
            c => new
                {
                    UserId = c.Long(nullable: false),
                    RoleId = c.Long(nullable: false),
                    CustomRole_Id = c.Long(),
                })
            .PrimaryKey(t => new { t.UserId, t.RoleId })
            .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
            .ForeignKey("dbo.CustomRoles", t => t.CustomRole_Id)
            .Index(t => t.UserId)
            .Index(t => t.CustomRole_Id);

现在我有两个字段Role。我不明白为什么。

为什么EF迁移添加字段

我不得不写

 base.OnModelCreating(modelBuilder);

modelBuilder.Configurations.Add(new DocumentConfiguration());
modelBuilder.Configurations.Add(new SubvisionConfiguration());
modelBuilder.Configurations.Add(new DocumentActionConfiguration());
modelBuilder.Configurations.Add(new CustomRoleConfiguration());

我把它写在