微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 为什么不使用Entity框架创建代码优先表?

一个在ASP MVC tutorial的传奇中,我正在努力.一切都很顺利,除了,我注意到创建的三个表中有两个没有数据.无法弄清楚为什么,我认真地删除数据库,以为我会从头开始重新创建它.好了,现在创建了数据库,但是没有表格. AND,将在表中的数据仍然传递给视图.我很困惑.

SchoolContext.cs

public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
    public DbSet<Enrollment> Enrollments { get; set; }
....
....

SchoolInitializer.cs

public class SchoolInitializer : DropCreateDatabaseIfModelChanges<SchoolContext>
{
    protected override void Seed(SchoolContext context)
    {
        var students = new List<Student>()
        {
            new Student{FirstName = "James",LastName = "Dean",EnrollmentDate = DateTime.Parse("01/01/2015")},new Student{FirstName = "Linda",LastName = "Thames",EnrollmentDate = DateTime.Parse("01/01/2015")}
        };

        foreach (var student in students)
        {
            context.Students.Add(student);  
        }
        context.SaveChanges();

...And a Courses table and an Enrollment table...

XyzController.cs

public class XyzController : Controller
{
    private SchoolContext db = new SchoolContext();
    // GET: Xyz
    public ActionResult Abc()
    {
        var students = db.Students.ToList();

解决方法

您是否正确设置了数据库初始化程序?
你需要这样的东西:

Database.Setinitializer(new DropCreateDatabaseAlways<BlogContext>());

您应该将此行放在Global.asax中的Application_Start()方法中如果是,您可以回收您的应用程序池以使此代码再次运行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐