1

我很清楚我可以自定义同步模型和数据库模式过程的行为。我正在使用该DropCreateDatabaseIfModelChanges<>课程来这样做。

假设我有一个工作项目和站点并且DB正在填写数据。一切正常。

有一天,我决定需要更改某些功能。这些更改将影响我的模型的属性(它们可以重命名/删除/添加,一些模型将是新的,一些模型被删除)。

我的问题:当我签入所有更改时,已部署站点上的现有数据会发生什么情况?

我会失去它吗?如果是这样,我该如何避免呢?

4

1 回答 1

5

是的,如果您的模型更改并且您正在使用,您将丢失数据DropCreateDatabaseIfModelChanges<T>

为了避免这种情况:

不要在生产中使用 Db 初始化程序(也许除了CreateDatabaseIfNotExists<T>)。数据库初始化是为了平滑开发体验,而不是用于生产。您需要的是Entity Framework 4.3 的新迁移功能。(目前在 Beta1 中)它提供了自动和代码库数据库模式迁移的功能。

此外,现在您可以从文件中设置DB 初始化*.config程序,因此您可以轻松地在开发时间之间切换DropCreateDatabaseIfModelChanges到生产配置中的无初始化程序。

于 2012-01-21T16:52:45.260 回答