数据库不是创建和初始化

时间:2015-12-29 12:09:27

标签: c# asp.net-mvc entity-framework

我在web.config中指定了正确的连接字符串,但数据库不是创建,也没有在种子方法中遇到断点。

代码:

public class MusicStoreEntities:DbContext
{
    public DbSet<Genre> genres;

    public MusicStoreEntities()
        : base("name=MusicStoreConnection")
    {
        Database.SetInitializer(new Myinitialzer());
    }
}


public class Myinitialzer :CreateDatabaseIfNotExists<MusicStoreEntities>
{
    protected override void Seed(MusicStoreEntities context)
    {
        var genres = new List<Genre>
        {
            new Genre { Name = "Rock" },
            new Genre { Name = "Jazz" },
            new Genre { Name = "Metal" },

         };
     }
 }

连接字符串:

 <add name="MusicStoreConnection" providerName="System.Data.SqlClient" connectionString="Data Source=WAQAR_DEV;Initial Catalog=PlanetWrox;Integrated Security=true;" />

2 个答案:

答案 0 :(得分:1)

setter和getter也列在dbset实体中,这是数据库没有创建的唯一原因,这个特定的代码不需要迁移,因为甚至没有生成数据库。只需要添加

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

答案 1 :(得分:0)

您需要将genres添加到上下文中并保存。

context.genres.AddRange(genres);
context.SaveChanges();

同时

  • See this问题以及this
  • 您可能需要将System.Data.Entity.CreateDatabaseIfNotExists添加到初始化程序
  • 您是否已设置迁移,是否自动生效?
  • 您可能需要运行迁移
  • 您收到任何错误消息