Команда Entity Framework Add-Migration генерирует изменения схемы в неправильном порядке - PullRequest
0 голосов
/ 06 марта 2020

При создании миграции Entity Framework некоторые из моих изменений схемы генерируются в неправильном порядке. Это происходит при добавлении столбцов к существующему объекту, который имеет только один индекс первичного ключа (подробнее об этом позже). Например:

namespace MyApp.Migrations
{
    using System.Data.Entity.Migrations;

    public partial class MyMigration : DbMigration
    {
        public override void Up()
        {
            CreateTable(
                "MyTableName",
                c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    // ... rest of columns
                })
                .PrimaryKey(t => t.Id);

            DropTable("MyTableName");
        }

        public override void Down()
        {
            CreateTable(
                "MyTableName",
                c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    // ... previous column state
                })
                .PrimaryKey(t => t.Id);

            DropTable("MyTableName");
        }
    }
}

Для других изменений столбцов соответственно используются AddColumn() и DropColumn() соответственно. Для тех таблиц, столбцы которых обновляются и используют вышеупомянутые методы, у них есть существующие индексы внешнего ключа, в отличие от таблиц, с которыми у меня в настоящее время возникают проблемы.

Одно дело для EF - просто отбрасывать и воссоздавать таблицы, которые Я не возражаю против самого себя. Мне просто не нужно было go в файл миграции и вручную изменять порядок операций. Я чувствую, что EF должен быть достаточно умен, чтобы знать, что сначала он должен быть отброшен, а затем создан.

Это ошибка или я что-то здесь упускаю?

...