2016-04-14 49 views
0

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

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中类

<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> 
+0

哪个版本的EF? –

+0

这是最新的。 6.1.3 – Tom

回答

0

EF直到调用方面不会产生数据库。您可以通过添加一个静态构造函数与您选择的初始值设定项来确保这一点:

public class TestDbContext : DbContext 
{ 

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

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

对不起,它不承认EntityModelContext()。你的意思是静态TestDbContext作为consurctor – Tom

+0

是的,这是一个构造函数。编辑。 –

+0

我建立了项目,但它dosent似乎来创建数据库 – Tom