Сначала код EntityFramework, запустите скрипт обновления базы данных после DropCreate

Сначала я пытаюсь найти хорошие обходные пути для проблем с вычисляемыми столбцами в коде. В частности, у меня есть несколько столбцов даты и времени CreatedAt, для которых необходимо установить значение getdate().

Я рассматривал возможность сделать это с помощью конструкторов POCO, но для этого я должен удалить параметр Computed (иначе он не сохранит данные), однако нет простого способа убедиться, что столбец установлен только в том случае, если мы вставка записи. Так что это будет перезаписывать CreatedAt каждый раз, когда мы обновляем.

Я хочу создать сценарий изменения, который можно вызывать после DropCreate, который будет проходить и изменять различные столбцы, чтобы включить значение по умолчанию для getdate().

  1. Есть ли событие для подключения к чему-то вроде OnDropCreateCompleted, где я мог бы затем запустить дополнительный SQL
  2. Как лучше всего справиться с измененным сценарием? Я думаю просто отправить необработанный sql на сервер, который будет работать.
  3. Есть ли другой способ справиться с проблемой getdate(), который может быть более изящным и более встроенным с кодом, который мне не хватает?

Спасибо


person Prescott    schedule 02.05.2012    source источник


Ответы (1)


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

Если вы используете миграции, вы можете просто использовать пользовательский метод SQL to Up.

person Ladislav Mrnka    schedule 03.05.2012