【发布时间】:2012-05-24 16:37:42
【问题描述】:
我已经设置了我的数据库,我想在模型中添加一个新字段,在表中添加一个新列,有没有办法可以做到这一点而不会丢失所有数据? 通常,如果您删除数据库,它将自动重新创建所有内容,但我不想丢失数据。 我使用 SQL Server 2008 作为数据库。
【问题讨论】:
我已经设置了我的数据库,我想在模型中添加一个新字段,在表中添加一个新列,有没有办法可以做到这一点而不会丢失所有数据? 通常,如果您删除数据库,它将自动重新创建所有内容,但我不想丢失数据。 我使用 SQL Server 2008 作为数据库。
【问题讨论】:
如果您首先使用代码,我总是在这种情况下手动将列添加到数据库中。不幸的是,没有简单的方法可以使用 Code First 自动进行增量模型更新。
例如,EF Code First 自身的错误之一甚至将手动更新指定为最佳选项:
支持“您的上下文”上下文的模型自数据库创建以来已更改。手动删除/更新数据库,或使用 IDatabaseInitializer 实例调用 Database SetInitializer。例如,DropCreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择为其添加新数据。
【讨论】: