1

背景:

我正在使用 Entity Framework Code First 开发一个应用程序,并且一直在使用我的 POCO 模型尽可能多地描述数据库模式。但是,在少数情况下,只有迁移 API 支持您想要的(例如添加索引)。直到稍后我才开始添加迁移,此时重新创建数据库要快得多,但这似乎是唯一的选择。

所以我想我会看看我是否可以看看迁移是否可行。我计划最终使用它们,我希望我能够调整初始迁移或在我去的时候重新生成它,直到是时候进行真正的迁移了。但是,我对这种方法也没有真正的运气。实体框架的代码迁移似乎存在根本缺陷,因为它们强制将模式存储(序列化)作为迁移的一部分。

对我来说,这意味着无法调整迁移,因为我无法更新Target属性(本质上是我模型的序列化版本)。我也无法重新生成迁移,因为无法单独表达索引。部分问题是迁移的工作方式迫使它们以串行方式进行,当我想更新过去的迁移或有多个开发人员时,这很糟糕。

因此,我选择只使用context.Database.ExecuteSqlCommand添加索引,但是我想弄清楚这种迁移限制是否会在未来发生变化,或者我是否可以解决它。

问题:

有没有办法更新IMigrationMetadata现有迁移,有没有办法进行不需要在Target现场找到的元数据的迁移?

4

0 回答 0