2013-10-27 5 views
2

Я пытаюсь использовать EF с использованием подхода Code-First, но с существующей базой данных. После поиска я нашел, что важно, чтобы установить Initializer для моего контекста на null с SetInitializer<>. Теперь в большинстве образцов я обнаружил, что они объявляют конструктор MyDbContext с модификатором static. Проверьте this SO answer.
Итак, в чем смысл объявления static конструктора?static constructor in EF Code Первое использование

ответ

3

Статические конструкторы автоматически выполняются перед любыми другими конструкторами и перед доступом к любым статическим элементам. Они вызывается только один раз для каждого приложения и поэтому полезны для инициализации статики, такие как вызов статического метода SetInitializer для типа базы данных.

+0

Так что это не ** требуется ** для использования статического конструктора .. это лучший способ сделать это? –

+0

Правильно, для Entity Framework не имеет значения, как вы вызываете SetInitializer, просто убедитесь, что вы вызываете его перед чем-либо еще в своем контексте, если вам нужно изменить инициализатор по умолчанию. Если вам не нужно менять значение по умолчанию, которое является CreateDatabaseIfNotExists, вам не нужно его вообще называть. –

Смежные вопросы