0

我已经使用我的 MVC 应用程序几个星期了,对模型进行更改并重新构建等。现在,在最近对数据注释进行更改之后,尽管在 Application_Start 上的 global.asax 文件中有策略,但我的数据库没有重新生成

因此,我从 sql express 中手动删除了数据库,认为它会在我构建时创建一个新数据库。没有。

这是我的启动代码:

protected void Application_Start()
        {
        Models.cummins_sqldb c = new Models.cummins_sqldb();
        c.Database.Initialize(true);
        System.Data.Entity.Database.SetInitializer(new System.Data.Entity.CreateDatabaseIfNotExists<cummins_db.Models.cummins_sqldb>());
        System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<cummins_db.Models.cummins_sqldb>());

        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
        }

我在 web.config 文件中有连接字符串。

关于我可以尝试什么的任何建议?

4

1 回答 1

0

像这样的事情通常发生在我身上,当你在更改表定义时发生冲突例如:你已经在 DB 中有一些数据并向表中添加了一个不能为空的外键,以便将你令人兴奋的表与新表相关联一

表上数据的外键字段保持为空,并且与新表定义解决方案冲突,如下所示:

  // Create  a department for course to point to.
Sql("INSERT INTO dbo.Department (Name, Budget, StartDate) VALUES ('Temp', 0.00, GETDATE())");
//  default value for FK points to department created above.
AddColumn("dbo.Course", "DepartmentID", c => c.Int(nullable: false, defaultValue: 1)); 
//AddColumn("dbo.Course", "DepartmentID", c => c.Int(nullable: false));

Tom Dykstra,有很好的教程来解决这个问题: getting-started-with-ef-5-using-mvc-4

看看它(在第 4 章),希望这会有所帮助

之后,您可以轻松回滚上一次工作迁移,然后更新数据库进行一些更改,然后再次根据您的愿望更新您的数据库

哦,伙计,我现在看到了询问的日期,希望对其他人有所帮助... :))

于 2014-02-20T00:24:09.560 回答