0

我是 EF Code First 的新手。

我创建了一个子类DbContext并添加了一些DbSets.

我在上下文中创建了子类DropCreateDatabaseAlways<MyContext>并实现了以下内容,这是我的上下文的样子:

public class Context : DbContext
{
  public Context() : base("Database") {  }

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    Database.DefaultConnectionFactory.CreateConnection("System.Data.SqlServerCe.4.0");
    Database.SetInitializer(new DatabaseInitializer());
  }

  public DbSet<NameEntity> Names { get; set; }
  public DbSet<Case> Cases { get; set; }
}

在我运行以下命令并检查应用程序文件后,我没有看到生成的数据库:

public App() //App ctor
{
  using (Models.Context context = new Models.Context())
  {

  }
}

我错过了什么?

4

1 回答 1

3

您必须以某种方式强制 EF 创建数据库。可以通过以下方式完成:

  • 使用上下文(存储某些内容或读取某些内容) -Seed在这种情况下,操作不计算在内,因为Seed在数据库初始化后执行,但您需要一些东西来触发初始化
  • 手动强制初始化

例子:

context.Database.Initialize(false);
于 2012-01-18T09:57:02.060 回答