2014-01-06 1 views
0

В настоящее время у меня есть хорошая модель, и я могу сгенерировать базу данных на основе этого, но из того, что я могу сказать, таблицы никогда не создаются (приводят ко всем видам веселых ошибок времени выполнения).Формирование EF 6 для создания таблиц с первой моделью

Я понимаю, что есть три варианта кода первого, что бы заставить EF создать таблицы для меня:

  • DropCreateDatabaseAlways
  • CreateDatabaseIfNotExists
  • DropCreateDatabaseIfModelChanges

Как я могу используйте их, если я сначала делаю модель?

Кроме того, это ожидаемая ошибка, или когда я выбрал создание базы данных из модели в первый раз, это должно произойти автоматически?

Edit: Я пытался дозвониться

  context.Database.Initialize(true); 
      context.Database.CreateIfNotExists(); 

и ничего не меняется.

+0

смотреть на это [силы инициализации базы данных] [1] [1]: HTTP: // StackOverflow .com/questions/12724320/forcing-code-first-to-always-initialize-a-not-existent-database –

+0

@ilayzeidman где метод '.SetInitializer()'? – soandos

ответ

2

также это хорошо toturial tutorial

, но если вы сделали модель хорошего в первый раз, вы получаете доступ к DbContext БД должны быть созданы стратегии БД, которые вы можете установить: Database.SetInitializer() set initializer

короче после создания модели необходимо создать класс, который наследует от DbContext:

public class CompanyContext : DbContext 
{ 
    public CompanyContext() : base("CompanyDatabase") { } 

    public DbSet<Collaborator> Collaborators { get; set; } 
    public DbSet<Department> Departments { get; set; } 
    public DbSet<Manager> Managers { get; set; } 
} 

, а затем, когда вам доступ в этом контексте должны быть сгенерированы таблицы. вы также можете засеять базу данных с данными, вы должны унаследовать от стратегии вы хотите реализовать взгляд на эту ссылку seeding database

+0

Если модель хороша только сейчас (раньше она не была), как я могу ее обновить до таблиц? Создание базы данных из модели не похоже на трюк. Кроме того, я не могу найти этот метод. Я устанавливаю его в контексте? – soandos

+0

Да, это должно было сделать трюк, который я сделал много раз, когда вы создали свой собственный класс, унаследованный от DbContext? –

+0

Я не создал ни одного из моих собственных классов. Мне нужно это сделать? – soandos

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

  • Нет связанных вопросов^_^