Принуждение EF 6 для создания таблиц с первой моделью

c# database ef-model-first entity-framework-6

Вопрос

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

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

  • DropCreateDatabaseAlways
  • CreateDatabaseIfNotExists
  • DropCreateDatabaseIfModelChanges

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

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

Изменить: я попробовал позвонить

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

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

Принятый ответ

также это хороший тотуральный учебник

но если вы сделали модель хорошей при первом доступе к dbContext, db должен быть создан с помощью стратегии db, которую вы можете установить: Database.SetInitializer () установить инициализатор

вкратце после создания вашей модели вам нужно создать класс, который наследуется от 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; }
}

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




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему