Я добавил EntityFramework.Migrations (Beta 1) в существующее приложение Code-First, которое проходит через некоторые изменения (как для возможностей миграции, так и для более точной настройки таблиц, которые я генерирую из моего первого кода кода) и столкнулся с сценарий GETDATE().Возможно ли по умолчанию использовать поле DateTime для GETDATE() с миграциями Entity Framework?
Я уже использовал собственный класс инициализатора в своем DbContext для запуска SQL-скриптов для установки некоторых полей и создания индексов в моей базе данных. Несколько моих скриптов AlterTable являются первичными для установки полей со значениями по умолчанию (например, для определенных полей DateTime устанавливается значение GETDATE()). Я действительно надеялся, что EntityFramework.Migrations будет отвечать за это, так как вы можете легко указать defaultValue, но пока я его не вижу.
Любые идеи? Я действительно надеялся, что выполнение следующего будет волшебным образом работать. (Это «волшебный единорог», в конце концов)
DateCreated = c.DateTime(nullable: false, defaultValue: DateTime.Now)
К сожалению, и по логике вещей, он установил свое значение по умолчанию в то время, когда команда Update-Database
была выполнена.
Я не смотрю на попадание в теорию вращающейся вокруг»... используя ORM, вы не должны вводить логику в базу данных ... ». Я это понимаю. Просто хочу удостовериться, что никто не отбрасывает пример POCO с помощью DateTime.Now в конструкторе :) – adammokan
просто похоже на подобное, и нашел хорошее решение. Надеюсь, это поможет: http://stackoverflow.com/questions/9830216/ef-4-3-1-migration-exception-altercolumn-defaultvaluesql-creates-same-default/ –