Когда метод Seed вызывается в сценарии первой миграции EF-кода?
Я новичок в проекте и есть этот класс для исходных данных:
internal sealed class Configuration : DbMigrationsConfiguration<DAL.Context>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
И этот код, чтобы начать семя:
protected override void Seed(Context context)
{
try
{
Мой вопрос: когда вызывается метод Seed
? Только когда пользователь делает update-database
, и у пользователя нет базы данных (в основном нового пользователя), а также когда пользователь с существующей базой данных вызывает update-database
?
Ответы
Ответ 1
Метод семян используется для инициализации таблиц базы данных некоторыми исходными данными. Всякий раз, когда вы запускаете миграцию и обновляете базу данных, она запускает метод семени. В основном он используется на этапе тестирования, когда вам часто нужно воссоздавать базу данных и заполнять таблицы базы данных с образцами данных. Прочтите эту ссылку http://blog.oneunicorn.com/2013/05/28/database-initializer-and-migrations-seed-methods/ для более подробного объяснения кода.
Ответ 2
Когда дело доходит до метода migrations Seed()
, исходящего из класса DbMigrationsConfiguration
, он вызывает каждый раз, когда выполняется команда Update-Database
. Также, когда пользователь вызывает его с существующей базой данных.
Существует еще один метод Seed()
- это инициализатор базы данных. Он вызывается, когда база данных создает и не обрабатывает существующие данные (семя из DbMigrationsConfiguration
обманывает их, проверяя, существуют ли указанные сущности).
Приятно взглянуть на один блог единорога для получения дополнительной информации.