CodeInside
@CodeInside

Почему не вызывается метод seed класса DatabaseInitializer?

Контекст БД
public class EntityDataModel : DbContext, IDataModel
    {
        static EntityDataModel()
        {
            Database.SetInitializer<EntityDataModel>(new DatabaseInitializer());
        }

        public DbSet<Person> Persons { get; set; }
    }


Person.cs
public class Person
    {
        public int Id { get; set; }
        public string Names { get; set; }
        public DateTime DateOfBirth { get; set; }
        public string MaritalStatus { get; set; }
        public string Address { get; set; }
        public string Email { get; set; }
    }


DatabaseInitializer.cs
internal class DatabaseInitializer : DropCreateDatabaseAlways<EntityDataModel>
    {
        protected override void Seed(EntityDataModel db)
        {
            AddPersonsToDb(ref db);
            db.SaveChanges();
        }

        private void AddPersonsToDb(ref EntityDataModel db)
        {
            db.Persons.Add(
                new Person
                {
                    Names = "Лебедев Сергей Вячеславович",
                    DateOfBirth = new System.DateTime(1989, 11, 20),
                    MaritalStatus = "Не женат",
                    Address = "140702, г. Черемуино, ул. Голландская, дом 54, квартира 236",
                    Email = "lebedev@gmail.com"
                }
                );
        }


В статический конструктор контекста БД отладчик заходит. В метод seed класса DatabaseInitializer - нет. При запуске приложения БД не создаётся. С помощью миграций создавалась. Почему не вызывается seed?
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 1
@stcmd04236
Вы переопределили метод Seed. Добавьте в конце base.Seed(db);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы