stu*_*bax 1 database entity-framework ef-code-first asp.net-mvc-4
我清楚地知道我可以自定义同步模型和DB模式过程的行为.我正在DropCreateDatabaseIfModelChanges<>上课这样做.
假设我有一个工作项目和网站,DB并填写数据.一切都很好.
有一天,我决定需要改变一些功能.更改将影响我的模型的属性(可以重命名/删除/添加,一些模型将是新的,一些模型将被删除).
我的问题:当我检查所有更改时,我已部署网站上现有数据会发生什么?
我会失去它吗?如果是这样,我该如何避免呢?
是的,如果您的模型发生变化并且您正在使用,您将丢失数据 DropCreateDatabaseIfModelChanges<T>
为了避免这种情况
不要在生产中使用Db初始化器(可能除了CreateDatabaseIfNotExists<T>).数据库初始化是为了平滑开发体验,而不是用于生产.您需要的是Entity Framework 4.3的新迁移功能.(目前在Beta1中),它提供了自动和基于代码库的数据库模式迁移的功能.
此外,您现在可以从文件中设置数据库初始化*.config程序,因此您可以轻松地在开发时间之间切换DropCreateDatabaseIfModelChanges到生产配置中的初始化程序.
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |