Миграция Entity Framework на datetime2

Сначала мы используем код Entity Framework 6. Недавно мы решили переместить формат даты и времени в базе данных в формат datetime2. Наша база данных в настоящее время содержит много данных и около 262 таблиц.

Погуглив, я нашел ответ, который описывает, как перейти на datetime2:

modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));

Поэтому я поместил эту часть кода в OnModelCreating метод. Затем я запустил Add-Migration commend, который создал метод Up, содержащий множество DropPrimaryKey, AlterColumn а также AddPrimaryKey строки, как в этом примере:

Затем я запустил Update-Database commend и получил это сообщение об ошибке:

Объект "DF__AdminMessa__Date__353DDB1D" зависит от столбца "Дата".

ALTER TABLE ALTER COLUMN Дата не выполнена, поскольку один или несколько объектов имеют доступ к этому столбцу.

Я предполагаю, что эта ошибка вызвана ограничениями на таблицы. Я знаю, что могу временно отключить их и снова запустить этот сценарий, но тогда нам придется запустить сценарий, который отключает ограничения, вручную на ~262 таблицах. Кроме того, я не знаю, нормально ли это, чтобы запускать такие сценарии при использовании Code First.

Есть ли какой-нибудь правильный способ перенести существующую базу данных (с данными) в datetime2 в EF Code First?

0 ответов

Другие вопросы по тегам