0

我有一个现有的 MVC3 应用程序和数据库,它位于 SQL Server 2008 R2 上,我必须向bool现有模型添加一个项目。

将其添加到模型后,我重新构建并发布了该项目。然后我打开 SQL Server Management Studio 并转到表并将条目添加到列中,因为表已经包含数据,所以我必须使其可为空。

我认为这就是我需要做的所有事情才能让一切正常工作。但是我收到了这个错误:

自创建数据库以来,支持“psllc_DB”上下文的模型已更改。手动删除/更新数据库,或使用 IDatabaseInitializer 实例调用 Database.SetInitializer。例如,DropCreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择使用新数据为其播种。

我不确定还能做什么,我回到代码并将其更改为bool可以bool?为空,但这也无济于事。我不能删除整个数据库,因为它充满了数据,但是作为最后的可能性,我可以删除这个表并重新创建它,因为它只有几个条目,但我不知道这是否可行。我不确定还能做什么,所以任何建议都会非常感激。


更新

由于我没有得到任何回复,让我重新表述我的问题。

我应该如何更新我的数据库(SQL Express mdf 文件)以将bool列添加到已经有数据的表中?我需要数据库来匹配我更新的 MVC 3 Entity Code First 模型,否则我会收到上述错误。

谢谢

4

1 回答 1

1

由于这是代码优先,因此您应该先执行此代码:更改类并使用EF 迁移来更改数据库。你这样做的方式,模型和数据库可能匹配,但数据库中的元信息没有更新。

顺便说一句,如果您提供默认值,您可以添加一个不可为空的列。

于 2012-05-12T18:53:28.297 回答