2015-01-15 26 views
0

我正在关注教程:http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application。我已经将我的数据SchoolInitializer.cs,但是,我发现了以下错误:Data Initializer无法在ASP.NET MVC中转换?

Object of type 'ContosoUniversity.DAL.SchoolInitializer' cannot be converted to type 'System.Data.Entity.IDatabaseInitializer`1[ContosoUniversity.DAL.SchoolContext]'.

Web.config文件:

<contexts> 
     <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity"> 
     <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" /> 
     </context> 
</contexts> 

SchoolInitializer.cs:本教程有种子()重写声明。当我说 “越权”,它说

Error 1 'ContosoUniversity.DAL.SchoolInitializer.Seed(ContosoUniversity.DAL.SchoolContext)': no suitable method found to override

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 
using ContosoUniversity.Models; 

namespace ContosoUniversity.DAL 
{ 
    //When accessing DB initially for every run. If there's a difference between database to the model (SchoolContext, Entity Class) 
    //Drops and recreates Database with data in SchoolInitializer 

    //In Web.config: add <context> </context> to let Entity Framework use SchoolInitializer 
    public class SchoolInitializer 
    { 
     protected void Seed(SchoolContext context) 
     { 
      var students = new List<Student> 
      { 
       new Student{FirstMidName="Carson",LastName="Alexander",EnrollmentDate=DateTime.Parse("2005-09-01")}, 
       new Student{FirstMidName="Meredith",LastName="Alonso",EnrollmentDate=DateTime.Parse("2002-09-01")}, 
       new Student{FirstMidName="Arturo",LastName="Anand",EnrollmentDate=DateTime.Parse("2003-09-01")}, 
       new Student{FirstMidName="Gytis",LastName="Barzdukas",EnrollmentDate=DateTime.Parse("2002-09-01")}, 
       new Student{FirstMidName="Yan",LastName="Li",EnrollmentDate=DateTime.Parse("2002-09-01")}, 
       new Student{FirstMidName="Peggy",LastName="Justice",EnrollmentDate=DateTime.Parse("2001-09-01")}, 
       new Student{FirstMidName="Laura",LastName="Norman",EnrollmentDate=DateTime.Parse("2003-09-01")}, 
       new Student{FirstMidName="Nino",LastName="Olivetto",EnrollmentDate=DateTime.Parse("2005-09-01")} 
      }; 

      //Add entities to DbSet (entity set) 
      students.ForEach(s => context.Students.Add(s)); 
      context.SaveChanges(); 
      var courses = new List<Course> 
      { 
       new Course{CourseID=1050,Title="Chemistry",Credits=3,}, 
       new Course{CourseID=4022,Title="Microeconomics",Credits=3,}, 
       new Course{CourseID=4041,Title="Macroeconomics",Credits=3,}, 
       new Course{CourseID=1045,Title="Calculus",Credits=4,}, 
       new Course{CourseID=3141,Title="Trigonometry",Credits=4,}, 
       new Course{CourseID=2021,Title="Composition",Credits=3,}, 
       new Course{CourseID=2042,Title="Literature",Credits=4,} 
      }; 
      courses.ForEach(s => context.Courses.Add(s)); 
      context.SaveChanges(); 
      var enrollments = new List<Enrollment> 
      { 
       new Enrollment{StudentID=1,CourseID=1050,Grade=Grade.A}, 
       new Enrollment{StudentID=1,CourseID=4022,Grade=Grade.C}, 
       new Enrollment{StudentID=1,CourseID=4041,Grade=Grade.B}, 
       new Enrollment{StudentID=2,CourseID=1045,Grade=Grade.B}, 
       new Enrollment{StudentID=2,CourseID=3141,Grade=Grade.F}, 
       new Enrollment{StudentID=2,CourseID=2021,Grade=Grade.F}, 
       new Enrollment{StudentID=3,CourseID=1050}, 
       new Enrollment{StudentID=4,CourseID=1050,}, 
       new Enrollment{StudentID=4,CourseID=4022,Grade=Grade.F}, 
       new Enrollment{StudentID=5,CourseID=4041,Grade=Grade.C}, 
       new Enrollment{StudentID=6,CourseID=1045}, 
       new Enrollment{StudentID=7,CourseID=3141,Grade=Grade.A}, 
      }; 
      enrollments.ForEach(s => context.Enrollments.Add(s)); 
      context.SaveChanges(); 
     } 
    } 
} 

回答

2

替换以下行

public class SchoolInitializer 

要么

public class SchoolInitializer: DropCreateDatabaseIfModelChanges<SchoolContext> 

public class SchoolInitializer: DropCreateDatabaseAlways<SchoolContext> 
相关问题