Изменение порядка столбцов с помощью EF 4.3 Code-First Migrations

Читаем оба пошаговых руководства здесь:

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

Я не смог найти способ указать порядок столбцов в таблице данных SQL. Похоже, последнее добавленное свойство всегда сопоставляется с последним столбцом.

Пример:

public class SampleData {
    public int Id { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
}

Создаст таблицу с порядком столбцов:

Идентификатор | Данные2 | Данные3

Обновление класса, например:

public class SampleData {
    public int Id { get; set; }
    public string Data1 { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
}

Затем запуск обновления обновит таблицу до:

Идентификатор | Данные2 | Данные3 | Данные1

Кто-нибудь знает, есть ли способ указать порядок столбцов при использовании миграции?


person user974608    schedule 04.04.2012    source источник
comment
какой конкретный сценарий вас беспокоит? Работа с небольшими добавочными миграциями. Вы можете попробовать отредактировать миграцию вручную, также попробуйте Update-Database -script, чтобы увидеть, что именно происходит. Или вручную сопоставить столбцы, и в этом случае, я думаю, вы можете заказать их по своему желанию (не подтверждено). Будет ли что-то подобное работать? Я не совсем следую «потребностям» здесь, как упоминал @Ladislav. Заказ был «проблемой» с первых дней, поскольку я думаю, что это не считается приоритетом.   -  person NSGaga-mostly-inactive    schedule 05.04.2012


Ответы (2)


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

person Ladislav Mrnka    schedule 04.04.2012
comment
Это простая база данных, и я планирую использовать SQL Management Studio для ручного редактирования записей время от времени, поэтому порядок меня беспокоит. Насколько вы уверены, что это невозможно? В любом случае, если я не получу другого ответа в течение 2 дней, я приму ваш. - person user974608; 04.04.2012

Согласно документам MS:

Изменить порядок столбцов в таблице

...Эту задачу нельзя выполнить с помощью операторов Transact-SQL.

person andreikashin    schedule 01.11.2018