Снимок модели не соответствует текущей базе данных - PullRequest
0 голосов
/ 01 июля 2019

Возникла проблема, когда в моих таблицах базы данных отсутствуют ключи и индексы, которые явно присутствуют в текущем снимке модели.

Моя база данных полностью обновлена ​​с учетом последней миграции и сообщает, что не будет никаких изменений, если я попытаюсь создать новую миграцию.

Я не уверен в том, что они не совпадают, и я стараюсь не начинать заново при первоначальном создании.

Сокращение кода для целей объяснения, но есть несколько таблиц с одинаковой проблемой. В приведенном ниже коде вы можете видеть, что имеется HasKey (), а также HasIndex (), однако ни один из них не существует в таблице в базе данных.

Я попытался отменить миграцию и обновление-миграцию обратно до текущей миграции, но это дает те же результаты.

Edit: я не упомянул, что это только кажется, проблема с таблицами 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");
                });

No Foreign Keys

No Idexes

...