Asp.net mvc 实体框架未创建数据库

Asp.net mvc 实体框架未创建数据库,asp.net-mvc,entity-framework,code-first,Asp.net Mvc,Entity Framework,Code First,我正在尝试在VS Express中创建MVC 4 ApplicationDetoFood教程。我在模型中创建了这个类 但是当我运行代码时,没有创建数据库odetofoodb2 namespace OdeToFood.Models { public class OdeToFoodDB2 : DbContext { public DbSet<Resturant> Resturant { get; set; } public DbSet<

我正在尝试在VS Express中创建MVC 4 ApplicationDetoFood教程。我在模型中创建了这个类

但是当我运行代码时,没有创建数据库odetofoodb2

namespace OdeToFood.Models
{
    public class OdeToFoodDB2 : DbContext
    {
        public DbSet<Resturant> Resturant { get; set; }
        public DbSet<ResturantReview> ResturantReview { get; set; }
    }
}
在web.config文件中,我有以下连接字符串

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-OdeToFood-20140306003945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-OdeToFood-20140306003945.mdf" providerName="System.Data.SqlClient" />

但是这个数据库不包含我在Model文件夹中指定的表。

使您的类名与连接字符串名相同。它会起作用的

<add name="OdeToFoodDB2" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-OdeToFood-20140306003945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-OdeToFood-20140306003945.mdf" providerName="System.Data.SqlClient" />
二,。或者,您可以在上下文基构造函数中指定连接字符串:

public class MyContext : DbContext 
{ 
    public MyContext() 
        : base("OdeToFoodDB2") 
    { 
    } 
}
三,。或者,也可以对传递给DbContext构造函数的字符串使用“name=”形式。例如:

public class MyContext : DbContext 
{ 
    public MyContext() 
        : base("name=OdeToFoodDB2") 
    { 
    } 
}

使您的类名与连接字符串名相同。它会起作用的

<add name="OdeToFoodDB2" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-OdeToFood-20140306003945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-OdeToFood-20140306003945.mdf" providerName="System.Data.SqlClient" />
二,。或者,您可以在上下文基构造函数中指定连接字符串:

public class MyContext : DbContext 
{ 
    public MyContext() 
        : base("OdeToFoodDB2") 
    { 
    } 
}
三,。或者,也可以对传递给DbContext构造函数的字符串使用“name=”形式。例如:

public class MyContext : DbContext 
{ 
    public MyContext() 
        : base("name=OdeToFoodDB2") 
    { 
    } 
}
DbContext具有采用连接字符串名称的构造函数重载

public class OdeToFoodDB2 : DbContext
 {
 }
您可能还想尝试添加新的初始值设定项,以使数据库保持最新

namespace OdeToFood.Models
{
    public class OdeToFoodDB2 : DbContext
        : base("DefaultConnection")
    {
        public DbSet<Resturant> Resturant { get; set; }
        public DbSet<ResturantReview> ResturantReview { get; set; }
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        var initializer = new MigrateDatabaseToLatestVersion<OdeToFoodDB2, Configuration>()
        Database.SetInitializer(initializer);
        base.OnModelCreating();
}
DbContext具有采用连接字符串名称的构造函数重载

public class OdeToFoodDB2 : DbContext
 {
 }
您可能还想尝试添加新的初始值设定项,以使数据库保持最新

namespace OdeToFood.Models
{
    public class OdeToFoodDB2 : DbContext
        : base("DefaultConnection")
    {
        public DbSet<Resturant> Resturant { get; set; }
        public DbSet<ResturantReview> ResturantReview { get; set; }
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        var initializer = new MigrateDatabaseToLatestVersion<OdeToFoodDB2, Configuration>()
        Database.SetInitializer(initializer);
        base.OnModelCreating();
}

@欢迎光临。别忘了投赞成票。干杯很好,我没意识到+1@Awais:不客气。别忘了投赞成票。干杯很好,我没意识到+1