背景:
我正在使用Entity Framework Code First开发一个应用程序,并且我一直在使用我的POCO模型来描述数据库模式。但是,在某些情况下,只有迁移API支持您所需的内容(例如添加索引)。我不想在以后开始添加迁移,只是在此时重新创建数据库要快得多,但它似乎是唯一的选择。
所以我想我会看看我是否能看到迁移是否有效。我计划最终使用它们,我希望我能够调整初始迁移或者在我去的时候重新生成它,直到实现真正的迁移为止。但是,我也没有真正的运气。似乎实体框架的代码迁移存在根本性的缺陷,因为它们强制将模式作为迁移的一部分进行存储(序列化)。
对我而言,这意味着没有可能的方法来调整迁移,因为我无法更新Target
属性(实际上是我的模型的序列化版本)。我也无法重新生成迁移,因为无法单独表达索引。部分问题在于迁移的工作方式迫使它们以串行方式进行,这在我想要更新过去的迁移或者有多个开发人员时非常糟糕。
因此我选择仅使用context.Database.ExecuteSqlCommand
添加索引,但我想弄清楚迁移中的这种限制是否会在将来发生变化,或者我是否可以解决它。
问题:
有没有办法更新现有迁移的IMigrationMetadata
,是否有办法让迁移不需要Target
字段中的元数据?