目前我有一个很好的模型,我可以根据它生成一个数据库,但据我所知,这些表永远不会被创建(导致各种有趣的运行时错误)。
我的理解是,首先有三个代码选项可以强制EF为我创建表格:
如果我先做模型,我该如何使用这些?
此外,这是一个预期的错误,还是当我第一次从模型中选择生成数据库时,这应该是自动发生的?
修改:我试过调用
context.Database.Initialize(true);
context.Database.CreateIfNotExists();
并没有任何变化。
答案 0 :(得分:2)
这也很好 tutorial
但如果您在第一次访问dbContext时使模型良好,则应该通过您可以设置的db策略创建db: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