当我更改新数据库时,应用程序未检测到新数据库和retreive错误
的问题支持'DBContext'上下文的模型自从更改以来已经发生了变化 数据库已创建。考虑使用Code First Migrations进行更新 数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
但我不使用迁移,所以我不通过包管理器控制台更新数据库 我该如何解决这个问题?
答案 0 :(得分:0)
实际上它确实检测到数据库中的更改。数据库与模型不同。错误消息。
当迁移历史记录表中存储的哈希与计算的哈希值不匹配时,将引发此错误。 (看一下__MigrationHistory表,可能在系统表下)
如果删除此表,则基本上禁用该检查。您可以通过将Database.SetInitializer<YourContextType>(null)
添加到应用程序的启动来实现类似的功能。后者禁用该应用程序中的数据库创建,因此如果要按代码创建数据库,则需要从单独的应用程序(例如控制台应用程序)执行此操作。我更喜欢这种方式用于Web应用程序。
其次:如果您手动更改数据库(更改列,添加表等),则需要调整模型。因此,对于每个DDL语句,请更改您的代码。
如果您不首先使用代码,则可以在设计器中更新现有模型。
答案 1 :(得分:0)
当我第一次使用代码和mvc时,我遇到了这个问题。下面的答案是绝对正确的,但你应该去ASP.net网站,并做一些关于代码优先迁移的教程。您需要更好地了解更新数据库以及初始化和迁移的工作原理。