ult*_*ife 2 ef-migrations entity-framework-core
EF7 migration add命令(迄今为止,beta5)将DbContext针对当前模型快照定义的模型类进行比较,创建新的迁移类,并更新模型快照.
我需要修改迁移,使其生成不同的DDL SQL.例如,EF7使用SQL Server自动增量值的序列,我希望它使用标识.然而,这可能是任何其他原因.该migration remove命令将物理删除迁移文件并还原模型快照,因此在这种情况下它是无用的.
有3个文件包含看起来需要编辑的相关代码:
Up和Down方法.DbContextModelSnapshot文件包含需要修改的注释[migration].Designer.cs文件还包含迁移的模型快照.我假设这个快照需要匹配第2项中的模型快照,但我不确定.我有关于它的目的的唯一信息来自Brice的博客,该博客说:"如果您或提供商需要在迁移过程中检查模型以获取更多信息,那就是存在的."具体问题:
具体答案:
两个模型快照是否需要保持同步才能正确执行迁移?
不,迁移中的快照是提供者编写者的最后手段.例如,SQLite无法重命名列,因此可以使用迁移的模型快照为此操作执行表重建.99%的时间,它永远不会被使用.
修改3个单独的文件是编辑迁移的唯一方法吗?
大多数情况下,您应该只编辑主迁移文件.在极少数情况下,如果您在团队环境中工作并遇到合并冲突,则可能需要编辑模型快照.您可以忽略设计器文件; 它只是捕获有关迁移的一些元数据.
如果正确配置模型,则可能无需编辑任何内容.例如,要使用标识而不是序列,请覆盖DbContext.OnModelCreating()和添加modelBuilder.ForSqlServer().UseIdentity().
是否有一些EF命令只能重新生成模型快照,而不是重新生成迁移方法?
不,它不应该被需要,因为你几乎从不编辑这些文件.
| 归档时间: |
|
| 查看次数: |
2487 次 |
| 最近记录: |