2012-10-17 21 views
1

我正在使用asp.net mvc。我正在嘗試實施代碼優先實體模型。我已經follwed以下步驟,無法初始化代碼第一個實體模型中的初始數據的dbcontext

1,我已經創建了一個類student.cs

public class Student 
{ 
    public int StudentID { get; set; } 
    public string StudentName { get; set; } 
    public string Branch { get; set; } 
    public decimal Marks { get; set; } 
    public string Address { get; set; } 
} 

2,我已經craeted上下文類等,

public class StudentContext:DbContext 
    { 
     public StudentContext() 
     { 
      Database.SetInitializer(new StudentContextInitializer()); 
     } 

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

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
     } 
    } 

3,我已創建studentcontextinitializer類似,

public class StudentContextInitializer : DropCreateDatabaseIfModelChanges<StudentContext> 
    { 
     protected override void Seed(StudentContext context) 
     { 
      context.Student.Add(new Student { StudentName="madhav",Branch="CSE",Marks=888,Address="AKP" }); 
      context.Student.Add(new Student { StudentName = "Tirumalesh", Branch = "IT", Marks = 988, Address = "MDP" }); 
      context.Student.Add(new Student { StudentName = "Venkat", Branch = "ECE", Marks = 1000, Address = "BZA" }); 
      context.SaveChanges(); 
     } 
    } 

我已成功連接到數據庫,但我無法初始化ialize dbcontext與一些數據,這意味着我硬編碼studentcontextinitializer類中的一些記錄,但我無法將該記錄綁定到數據庫表。所以請指導我。

+0

放下你的分貝,然後再試一次。或者,或者從DropCreateDatabaseAlwaysInitializer擴展。 – danludwig

回答

2

您的DropCreateDatabaseIfModelChanges只會在您更改模型時初始化數據庫。您有幾個選項:

  1. 手動刪除數據庫並重新運行。
  2. 更改模型屬性。例如,將public string test { get; set; }添加到您的Student實體並重新運行。
  3. DropCreateDatabaseAlwaysInitializer擴展初始值設定項。這將導致數據庫被刪除,重新創建和播種,每次你重建並重新運行你的應用程序。