MVC代码优先 - 数据库不生成

时间:2016-04-14 15:53:56

标签: entity-framework model-view-controller

我正在使用Code First Approach开发MVC应用程序。我已经在一个单独的类库项目中定义了我的模型类。我还定义了我的DBContext类。我确保我的DBContext类与我的连接字符串具有相同的名称。出于某种原因,我没有看到创建数据库。我理解的是通过定义你的类和连接字符串,Entity框架会生成数据库。我确信我的连接字符串,因为它适用于我的其他应用程序。有人可以说出问题是什么吗

   public class Customer
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
        public string Address { get; set; }
        public string Phone { get; set; }
        public string Email { get; set; }

    }
 public class TestDbContext : DbContext
    {
        public DbSet<Customer> Customer { get; set; }
    }

App.Config class

<connectionStrings>
    <add name="TestDbContext" connectionString="Data Source=XYZ-PC\MSSQLSERVER2014;Initial Catalog=SalesOrderManagement;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" providerName="System.Data.SqlClient" />
  </connectionStrings>

1 个答案:

答案 0 :(得分:0)

在您调用上下文之前,EF不会生成数据库。您可以通过在所选初始化程序中添加静态构造函数来确保这一点:

public class TestDbContext : DbContext
{

    static TestDbContext()
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<TestDbContext>());
    }

    public DbSet<Customer> Customer { get; set; }
}