【问题标题】:An issue created due to experimentally selecting wrong scaffolding option in EF5 , MVC4 application由于在 EF5、MVC4 应用程序中实验性选择错误的脚手架选项而产生的问题
【发布时间】:2013-07-27 18:51:20
【问题描述】:

我是第一次使用 VS2012 和 EF5。我开发的应用程序就像 MVC3 、 EF4.1 应用程序一样,没有使用任何新功能。我已经有一个数据库,我创建了数据库上下文 、模型、控制器和视图。每件事都运行良好。然后我在数据库中创建了一个新表 Directorate,在 dbcontext 中创建了它的模型和数据库映射。 在创建它的控制器时,我选择了“使用实体框架进行读/写操作的 MVC 控制器”,只是为了看看会发生什么。我选择了我的上下文 和模型。当我运行该应用程序时,它在 db 中创建了一个名为 DirectorateModel 的新表,并在上下文中插入了映射。由于我已经创建了表和映射,因此我删除了由于此操作而添加的每个新功能,即我删除了表、上下文映射、控制器和视图。

但现在当我运行应用程序时,它会报错:

支持 'ArchieveingDBContext' 上下文的模型已更改 自创建数据库以来。考虑使用代码优先迁移 更新数据库 (http://go.microsoft.com/fwlink/?LinkId=238269)

我访问了提到的 url,但它是关于我不想使用的代码优先迁移。任何人都请帮助我如何解决这个问题,我想我必须删除一些东西 由于选择了错误的脚手架选项而创建的。

我只想让我的应用程序在以前的工作状态下运行。

【问题讨论】:

    标签: asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5


    【解决方案1】:

    您只需要设置正确的数据库初始化程序:

    Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists())
    

    还有这项工作

    【讨论】:

    • 我必须在哪里写这个?我不想创建数据库,因为我已经有了。
    【解决方案2】:

    你可以通过调用来修复它:

    Database.SetInitializer(null);

    在 Global.asax 的 Application_Start 方法中

    您不想在这样的现有数据库之上进行初始化。

    见:This Question

    【讨论】:

      【解决方案3】:

      从您的 .EDMX 模型和您使用脚手架创建的控制器/视图中移除 Directorate 实体。

      根据需要更改您的数据库,然后转到 VS 模型设计器(只需打开您的 .EDMX 模型)和Update model from database 并保存更改。

      现在您可以毫无顾虑地通过脚手架添加视图/控制器...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-16
        • 2020-12-11
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 2013-05-04
        相关资源
        最近更新 更多