Set*_*eth 8 entity-framework ef-code-first ef-migrations
假设我的对象有一个Name字段,我希望将其拆分为FirstName和LastName字段.或者它可能有一个地址字符串,我正在添加需要地理编码的Lat和Lng字段.等等
我期望在Up()和Down()方法中访问我的DbContext,但我能找到的(除了内置函数)是.Sql()调用.这足以添加和删除列,但不能将现有数据转换为新格式.
在Up()调用中引用我的DbContext是否安全?或者是否有另一种推荐的实现迁移模式,需要的不仅仅是简单的SQL?
不,您不能使用DbContext内部Up方法,因为它已经引用了新模型,但您的数据库仍然针对旧模型。
编辑:
所有数据迁移都必须通过Sql. 例如,您可以创建临时表、将旧数据移动到临时表、使用表结构迁移以及直接在 SQL 中使用某种转换将数据从临时表移回原始表 - 拆分 varchar 值应该不是什么大问题。