【发布时间】:2020-02-16 12:59:00
【问题描述】:
我一直在寻找一种方法,它可能还支持也可能不支持,我想我正在寻找一个具体的答案。
我一直在寻找的是满足以下要求的解决方案:
- EFCore 代码优先方法
- 现有数据库表中已有大量数据
- 通过更新我的模型将几列添加到所述数据库表中
- 无需通过 PM 控制台进行迁移,只需在应用程序启动时将 Context 与 Fluent Api 一起使用
- 不重新创建数据库
- 方法可以是:检查配置文件或某种形式,将其与数据库中版本表中的版本进行比较以触发更新
- 项目模板:Web Api 2、Uwp
如果支持,是否可取?如果不是,为什么?有什么缺点?
根据我参与的项目的经验,无论是数据库优先方法还是代码优先但使用数据库重建。
我想到的步骤是: - 更新模型 - 创建迁移对象 - 更新 db 版本的配置文件 - 在应用程序启动时,根据版本表检查配置版本 - 如果版本与调用 Update() 或 Migrate() 或两者不匹配,则使用迁移对象/类型作为参数
【问题讨论】:
-
您应该做的是在您现有数据库的模型中创建所有内容。伪造迁移表信息。然后添加任何迁移以修改您的数据库。
-
那么您真的需要迁移吗?这些都不能在应用程序启动或类似的情况下实现?
-
您可以在启动时调用迁移。
-
感谢您的链接,我会尝试这些,但我记得我已经这样做了,但会再试一次。但这应该适用于 Uwp 和 Web api 2,对吧?
标签: c# entity-framework-core asp.net-web-api2