Как повлиять на порядок столбцов с помощью Entity Framework Code First Migrations - PullRequest
10 голосов
/ 28 марта 2012

Я использую Entity Framework 4.3 Code First и опробую функцию миграции.

Если я добавляю новое свойство в свой класс и затем запускаю Add-Migration из окна консоли диспетчера пакетов, я получаю что-то вроде этого:

    public override void Up()
    {
        AddColumn("Products", "Discontinued", c => c.Boolean(nullable: false));
    }

Я хотел бы иметь возможность влиять на порядок столбца, поскольку я не хочу, чтобы он просто добавлялся в таблицу, а располагался по определенному индексу. Я подумал, что смогу добавить его в конфигурацию modelBuilder, например:

Property(p => p.Discontinued).HasColumnOrder(2);

но запущенная Update-database, похоже, не использует его. Это можно сделать как миграцию?

1 Ответ

5 голосов
/ 23 марта 2015

Это просто вопрос отсутствия функциональности.SQL сам по себе не полагается на какой-либо неявный порядок столбцов (за некоторыми исключениями: ORDER BY, ...).

Ни SQL Server, ни ORACLE не имеют прямой команды SQL DDL (также известной как ALTER TABLE...) дляпереместить колонку вокруг.

Поэтому нет возможности изменить порядок без особых усилий (воссоздать таблицу).См., Например,

...