Как засеять данные при использовании подхода Model First?

Итак, я изучаю MVC3 и EF4. Я пробовал использовать метод сначала код, но это было для меня слишком запутанным. Я могу создавать классы без проблем, но самая сложная часть возникает при работе с внешними ключами и отношениями между собой.

Но сначала я выбрал модель. Таким образом, я могу визуально спроектировать ее и увидеть, где находятся отношения.

После создания моей модели она создает для меня SQL, который я выполняю для моей базы данных SQL Express. Готово, готово.

Теперь мне нужны данные в моих таблицах. Конечно, я могу просто добавить их с помощью проводника сервера, но, скорее всего, я буду вносить изменения в свою модель по мере продвижения. И продолжайте обновлять базу данных. Поэтому я не могу продолжать вводить данные вручную. Я знаю, что если вы сначала используете код, вы можете получить DropCreateDatabaseIfModelChanges и переопределить метод seed . У меня есть следующий код:

 public class DatabaseInitializer : IDatabaseInitializer<BettingContext> {
    public void InitializeDatabase(BettingContext context) {
        var teams = new List<Team> {
            new Team { Name="Toronto Maple Leafs", League="NHL"},
            new Team { Name="Boston Bruins", League="NHL"},
            new Team { Name="Vancouver Canucks", League="NHL"},
            new Team { Name="Nashville Predators", League="NHL"},
            new Team { Name="Montreal Canadiens", League="NHL"},
        };
    }
}

Конечно, и в моем глобальном файле:

protected void Application_Start()
{
    Database.SetInitializer<BettingContext>(new DatabaseInitializer());
    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

и что теперь? Как мне сказать, чтобы он запустил метод? Что я делаю не так?

20
задан abatishchev 9 July 2012 в 13:44
поделиться