Как запустить SQL при создании базы данных с помощью EF 4.1 CodeFirst?

Я хочу использовать Elmah в своем приложении MVC для хранения сообщений об ошибках, и я хочу хранить исключения в базе данных моего приложения. Для этого мне нужно запустить включенный DDL для создания таблиц Elmah и хранимых процедур.

Однако, поскольку моя база данных разработки воссоздается всякий раз, когда изменяется моя модель (через EF CodeFirst), мне нужно, чтобы DDL запускался каждый раз при воссоздании базы данных.

Как мне это сделать? Единственное место, где я мог подумать, чтобы поместить это, было бы добавить вызовы для запуска Sql в переопределенном методе Seed() в моем DbInitializer, но это не кажется полностью подходящим, поскольку я не засеваю elmah, я создаю структуру для схемы быть созданным.

Каков наиболее подходящий способ применения DDL при воссоздании базы данных?


person KallDrexx    schedule 29.03.2011    source источник


Ответы (1)


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

person Ladislav Mrnka    schedule 29.03.2011