是否可以在 Entity Framework 5 Code First 迁移中进行任何类型的编程数据转换?
有一个Sql () 方法来执行查询,但它的返回类型为 void,我看不到任何方法可以获取我执行的查询的结果。
例子
我有与成分一对多关系的表配方。由于各种原因,我想将其转换为成分 JSON 字符串属性。我能想到的唯一方法是这样的:
- 创建新列成分Json
- 对于每个配方,查询其成分,以编程方式构造一个 JSON 字符串并插入到新列中。
- 删除旧表成分。
是否可以在 Entity Framework 5 Code First 迁移中进行任何类型的编程数据转换?
有一个Sql () 方法来执行查询,但它的返回类型为 void,我看不到任何方法可以获取我执行的查询的结果。
例子
我有与成分一对多关系的表配方。由于各种原因,我想将其转换为成分 JSON 字符串属性。我能想到的唯一方法是这样的:
您应该使用 db 'initializer' 来满足您的需求 - 和/或某种“种子”(关于注入 EF 流的位置)。
您可以> 使用自定义的 < -查看这篇文章, 它同时执行 Db Create... 和 Migrate。它不是剪切和粘贴解决方案,但大多数情况下都有效(这只是解决问题的快速方法,您需要进行一些调整,它在下面有几个修复)。 initializer
MigrateDatabaseToLatestVersion
仅对迁移部分进行剂量-您需要seed
暴露-或手动包装该部分(重点是针对不同情况进行的“检查”-即何时“参与”迁移-或播种)。
迁移应该首先进行,并且 db 'creation' 类型没有多大意义,除了播种。
您覆盖Seed
(您创建)以将任何数据库处理放在那里 - 您已经暴露了-如果需要 DbContext
,您也可以调用。SqlQuery