Я пытаюсь использовать EF с использованием подхода Code-First, но с существующей базой данных. После поиска я нашел, что важно, чтобы установить Initializer для моего контекста на null
с SetInitializer<>
. Теперь в большинстве образцов я обнаружил, что они объявляют конструктор MyDbContext
с модификатором static
. Проверьте this SO answer.
Итак, в чем смысл объявления static
конструктора?static constructor in EF Code Первое использование
2
A
ответ
3
Статические конструкторы автоматически выполняются перед любыми другими конструкторами и перед доступом к любым статическим элементам. Они вызывается только один раз для каждого приложения и поэтому полезны для инициализации статики, такие как вызов статического метода SetInitializer для типа базы данных.
Смежные вопросы
- 1. EF Code Первое развертывание
- 2. EF Code Первое развертывание gremlins
- 3. Использование Singleton in Constructor
- 4. EF Code Первое связывание со списком
- 5. EF Code Первое отображение составных клавиш
- 6. Debug EF Code Первое поколение баз данных
- 7. EF Code Первое отображение составных клавиш
- 8. EF Code - первое имя кэшированного плохого стола?
- 9. Entity Framework Code Первое использование
- 10. Static Constructor & Singleton class
- 11. Eager static constructor
- 12. C# Instance Constructor vs Static Constructor
- 13. EF Code First - Collection in Collection
- 14. Weird Caching Issue EF Code Первое приложение SQL Server 2014
- 15. + (void) initialize in object-c class static variables constructor
- 16. Undefined Constructor in android
- 17. SQL Azure Federation и EF Code Первое поколение баз данных?
- 18. Generic Type in constructor
- 19. C++ singleton in constructor
- 20. Использование READ_COMMITTED_SNAPSHOT с EF Code First 5
- 21. Try/Catch in Constructor
- 22. static static construction in C++
- 23. Loop in property in constructor
- 24. Entity Framework 6 Code Первое сопоставление функций
- 25. Django Static Files in Production Использование Whitenoise
- 26. Наследование EF Code-First
- 27. Actionlisteners in constructor
- 28. Colon in constructor (JavaScript)
- 29. super() in constructor
- 30. dynamic_cast in dervied constructor
Так что это не ** требуется ** для использования статического конструктора .. это лучший способ сделать это? –
Правильно, для Entity Framework не имеет значения, как вы вызываете SetInitializer, просто убедитесь, что вы вызываете его перед чем-либо еще в своем контексте, если вам нужно изменить инициализатор по умолчанию. Если вам не нужно менять значение по умолчанию, которое является CreateDatabaseIfNotExists, вам не нужно его вообще называть. –