Изменить столбец с файлом миграции?

Используя orchad 1.6 в файле миграции, я только что изменил таблицу и добавил столбец. Мне нужно, чтобы этот столбец был NotNull, но он не позволяет вам изменять таблицу, вводя тип NotNull, поэтому я использовал Nullable и ввел данные в существующие столбцы.

Затем я хочу отредактировать этот столбец и изменить его на Nullable, но я не уверен, как ...

public int UpdateFrom37()
        {
            SchemaBuilder.AlterTable("ManufacturedProductOrders", table => table
                .AddColumn<DateTime>("DateOrdered", c => c.Nullable())
                );

            return 38;
        }

        public int UpdateFrom38()
        {
            SchemaBuilder.AlterTable("ManufacturedProductOrders", table => table
                .AlterColumn("DateOrdered", c => c.WithType(dbType.???????????
                );
        }

person John    schedule 19.09.2013    source источник


Ответы (1)


Думаю, вы хотите изменить значение NULL на NOT NULL, верно? В приведенном выше коде четко указано, что у вас уже есть столбец, допускающий значение NULL.

Команда AlterColumn в настоящее время не позволяет изменять значение столбца "допускающее значение NULL".

Лучше всего ввести ALTER TABLE команду вручную через SchemaBuilder.ExecuteSql() или прямо в базе данных. Вы можете прочитать об этом, например. здесь.

person Piotr Szmyd    schedule 19.09.2013
comment
Обязательно ли использовать ExecuteSql ()? Есть метод AlterTable (), почему бы ему не стать рекомендуемым решением? Я не очень разбираюсь в Orchard, поэтому не совсем понимаю. Спасибо! - person Danny Bullis; 03.03.2015