我在我的示例项目中使用EF Core 2.0并使用了一些值对象配置。我修改代码并通过CLI命令行生成迁移。在上一次迁移中,不是按原样添加新的数据库表,而是尝试将现有表重命名,并为现有表创建一个额外的表。我无法弄清楚它的原因。
问题是,因为使用EF Core,快照是迁移本身的一个单独的自动生成文件,我不想修改快照。
我只想修改迁移脚本,以便它不会重命名多个表,然后从我创建的迁移中生成快照。
我在CLI中没有看到任何命令 - 修改脚手架迁移并重新生成是一种不好的做法,还是我错过了一些明确的新链接,其中解释了如何手动修改迁移脚本?
非常感谢。
更新1:评论后,从docs添加了有关快照的信息。
由于当前数据库模式以代码表示,因此EF Core无需与数据库交互即可创建迁移。添加迁移时,EF会通过将数据模型与快照文件进行比较来确定更改的内容。 EF仅在必须更新数据库时才与数据库进行交互。 +
答案 0 :(得分:0)
我检查了源代码控制生成的快照代码。它确实添加了一个额外的表作为我需要的。
生成此代码的迁移脚本充其量是繁忙的 - 将多个表重命名,然后警告这可能会导致多个问题。
由于这是一个示例项目,至少我现在只有模拟数据,所以我决定采用它而不是破坏自动化脚本。我愿意在这个阶段丢失一些模拟数据而不是浪费时间。
如果这是在生产数据库中,我会非常小心地手动创建相同的结果,同时干预修改脚手架和迁移文件。
我接受这个作为答案(基本上说现在的EF Core不支持我现有的知识),因为现在没有其他候选人 - 如果有更好的答案显示,我将非常乐意接受起来。