gpt4 book ai didi

ef-code-first - EF Code First 数据库初始化程序和迁移混淆

转载 作者:行者123 更新时间:2023-12-04 15:08:54 28 4
gpt4 key购买 nike

我在 Entity Framework 6.0 上。这是一个开发问题,而不是生产问题。

我想我有一个相互矛盾的策略。
目前,我设置了 DropCreateDatabaseIfModelChanges 数据库初始值设定项,并使用 Configuration.cs 中的种子方法启用了迁移。
在添加迁移和运行更新数据库时,对于何时删除和重新创建数据库以及何时运行种子方法似乎是幸运的。
事实是,这两种情况何时发生完全靠抽奖,我必须想方设法使事情发挥作用。
有人能告诉我同时启用数据库初始化程序和迁移是否有冲突。
谢谢

最佳答案

这不是一个合适的组合。有一个MigrateDatabaseToLatestVersion 用于迁移的初始化程序。

在早期开发期间,您可能希望使用 DropCreateDatabaseIfModelChanges 初始值设定项(或 CreateDatabaseIfNotExists)。初始化程序有一个特殊的 Seed() 方法,该方法仅在创建数据库时运行。

一旦达到数据库中的内容很难重新播种的程度,您就可以切换到迁移。更改您的初始化程序并启用迁移。请务必添加 initial baseline migration ( add-migration Initial -IgnoreChanges ) 所以你只会在那个点之后得到更改。您现在可以添加每次更新数据库时运行的迁移种子,而不是仅在创建数据库时运行的初始化种子。

如果需要重新创建数据库,可以生成idempotent script这将创建数据库并应用所有迁移。

关于ef-code-first - EF Code First 数据库初始化程序和迁移混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195334/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com