我遇到一个问题,即我的数据库表缺少当前模型快照中明确存在的键和索引。
我的数据库完全是最新的迁移,并且告诉我如果我尝试创建新的迁移,则无需进行任何更改。
我不确定它们是如何匹配的,并试图避免从最初的创建开始。
为了解释的目的,使代码简短,但是有多个表存在相同的问题。您可以在下面的代码中看到有一个HasKey()和HasIndex(),但是在数据库的表中都不存在。
我尝试将迁移和更新迁移恢复到当前迁移,但这会产生相同的结果。
编辑:我没有提到这似乎只是Identity表的问题。我的自定义表具有键和索引。
modelBuilder.Entity("MyProject.Models.AspNetUsers", b =>
{
b.Property<string>("Id");
b.Property<int>("AccessFailedCount");
b.Property<string>("ConcurrencyStamp");
b.Property<string>("Email")
.HasMaxLength(256);
b.Property<bool>("EmailConfirmed");
b.Property<bool>("LockoutEnabled");
b.Property<DateTimeOffset?>("LockoutEnd");
b.Property<string>("NormalizedEmail")
.HasMaxLength(256);
b.Property<string>("NormalizedUserName")
.HasMaxLength(256);
b.Property<string>("PasswordHash");
b.Property<string>("Permissions")
.HasMaxLength(50)
.IsUnicode(false);
b.Property<string>("PhoneNumber");
b.Property<bool>("PhoneNumberConfirmed");
b.Property<string>("PortalPath");
b.Property<string>("SecurityStamp");
b.Property<bool>("TwoFactorEnabled");
b.Property<string>("UserName")
.HasMaxLength(256);
b.HasKey("Id");
b.HasIndex("NormalizedEmail")
.HasName("EmailIndex");
b.HasIndex("NormalizedUserName")
.IsUnique()
.HasName("UserNameIndex")
.HasFilter("([NormalizedUserName] IS NOT NULL)");
b.ToTable("AspNetUsers");
});