2012-05-24 141 views
10

我有我的数据库已经设置,我想添加一个新的字段到模型,一个新的列到表,有没有一种方法可以做到这一点,而不会丢失我所有的数据? 通常,如果删除数据库,它会自动重新创建所有数据,但我不想丢失数据。 我使用SQL Server 2008作为数据库。EF 4.1代码优先 - 添加列

+0

可能重复http://stackoverflow.com/questions/5656604/updating-database-schema-with-entity-framework-code-first –

回答

9

您需要使用EF Migrations将新列添加到数据库中。您可以阅读有关EF迁移herehere的更多信息。

+0

有用的文档,谢谢! +1 – ChaseHardin

2

如果您先使用代码,那么我一直会在列表中手动添加列到数据库。不幸的是,使用Code First自动化增量模型更新没有简单的方法。

例如,EF代码第一次自己的错误之一甚至指定手动更新是最佳选择:

自数据库创建的模型支持了“您的上下文”语境已经改变。可以手动删除/更新数据库,也可以使用IDatabaseInitializer实例调用Database SetInitializer。例如,DropCreateDatabaseIfModelChanges策略会自动删除并重新创建数据库,并可以选择使用新数据对其进行种子处理。