Как повлиять на порядок столбцов с помощью Entity Framework Code First Migrations
Я использую Entity Framework 4.3 Code First и проверяю функцию Migrations.
Если я добавлю новое свойство в свой класс, а затем запустим Add-Migration из окна консоли диспетчера пакетов, я получу что-то вроде этого:
public override void Up()
{
AddColumn("Products", "Discontinued", c => c.Boolean(nullable: false));
}
Я хотел бы иметь возможность влиять на порядок столбца, поскольку я не хочу, чтобы он просто добавлялся к таблице, а скорее помещался в определенный индекс. Я думал, что могу добавить его в мою конфигурацию modelBuilder, что-то вроде:
Property(p => p.Discontinued).HasColumnOrder(2);
но запуск базы данных обновлений не используется. Можно ли это сделать как перенос?
Ответы
Ответ 1
Это просто недостающая функциональность. SQL сам по себе не полагается на какой-либо неявный порядок столбцов (за некоторыми исключениями: ORDER BY,...).
Ни SQL Server, ни ORACLE не имеют прямой команды SQL DDL (aka ALTER TABLE...
) для перемещения столбца.
Поэтому нет возможности изменить порядок без больших усилий (воссоздайте таблицу). См. Например