如何在 asp.net MVC4 中更改数据库时检测新数据库

本文关键字:数据库 检测 asp net MVC4 | 更新日期: 2023-09-27 18:35:44

当我更改新数据库时,应用程序未检测到新数据库并检索错误的问题

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

但我不使用迁移,所以我不会通过包管理器控制台更新数据库如何解决此问题?

如何在 asp.net MVC4 中更改数据库时检测新数据库

实际上,它确实会检测数据库中的更改。数据库与模型不同。错误消息。

当迁移历史记录表中存储的哈希与计算的哈希不匹配时,将引发此错误。(看看__MigrationHistory表,可能在系统表下)

如果删除此表,则检查基本上处于禁用状态。您可以通过向应用程序的启动添加Database.SetInitializer<YourContextType>(null)来实现类似的目标。后者禁用从该应用程序中创建数据库,因此如果要按代码创建数据库,则需要从单独的应用程序(例如控制台应用)执行此操作。对于 Web 应用程序,我更喜欢这种方式。

其次:如果您手动更改数据库(更改列、添加表等),则需要调整模型。因此,对于每个 DDL 语句,请更改代码。

如果不先使用代码,则可以在设计器中更新现有模型。

当我第一次开始使用代码优先和 mvc 时,我遇到了这个问题。 下面的答案是绝对正确的,但你应该去 ASP.net 网站,做一些关于代码优先迁移的教程。 您需要更好地了解更新数据库以及初始化和迁移的工作原理。