2015-12-29 35 views
2

我已经在web.config中指定了正确的连接字符串,但数据库没有创建,也没有在seed方法中打断点。数据库没有创建和初始化

代码:

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;" /> 

回答

1

getter和setter方法也与dbset实体的唯一原因是数据库wasnt创建,这里这个特定的代码没有迁移上市系统所需要的数据库甚至没有generated.just只需要添加

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

+0

好点 - 这是最难的看到 –

0

您需要添加genres在上下文并保存。

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

ALSO:

  • See this问题,也this
  • 您可能需要添加System.Data.Entity.CreateDatabaseIfNotExists到您的初始化
  • 是否已经设置了迁移,并且他们的汽车?
  • 您可能需要运行迁移
  • 您是否收到任何错误消息
+0

它仍然没有工作,我有两个模型类,但我提到一个在这里为简便起见,对此我用这个语法的ForEach(A = > context.Albums.Add(a) –

+0

我已经更新了我的回答 –

+0

thanx彼得史密斯帮助你提供了很好的学习资源,但我需要你的青睐接受我的回答。 –