假设我的对象有一个 Name 字段,我希望将其拆分为 FirstName 和 LastName 字段。或者它可能有一个地址字符串,我正在添加需要地理编码的 Lat 和 Lng 字段。等等等等。
我希望可以在 Up() 和 Down() 方法中访问我的 DbContext,但我能找到的所有(除了内置函数)是 .Sql() 调用。这足以添加和删除列,但不足以将现有数据转换为新格式。
在 Up() 调用中引用我的 DbContext 是否安全?或者是否有另一种推荐的模式来实现需要的不仅仅是简单的 SQL 的迁移?
最佳答案
不,您不能使用 DbContext
内Up
方法,因为它已经引用了新模型,但您的数据库仍以旧模型为目标。
编辑:
所有数据迁移必须通过 Sql
完成.例如,您可以创建临时表,将旧数据移动到临时表,使用表结构迁移并将数据从临时表移回原始表,并直接在 SQL 中使用一些转换 - 拆分 varchar 值应该没什么大不了的。
关于entity-framework - 我应该如何编写转换数据的 Entity Framework 迁移(最好使用 DbContext)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593553/