EF5 Code First迁移中的程序化数据转换

时间:2013-04-07 17:55:17

标签: entity-framework entity-framework-5 database-migration ef-migrations

是否可以在Entity Framework 5 Code First迁移中进行任何类型的编程数据转换?

有一个 Sql ()方法来执行查询,但它的返回类型为void,我看不到任何方法来获取我执行的查询的结果。

示例

我的表 Recipe Ingredient 有一对多的关系。由于各种原因,我想将其转换为Ingredients JSON字符串属性。我能想到的唯一方法就是这样:

  • 创建新列 IngredientsJson
  • 对于每个配方,查询其成分,以编程方式构造JSON字符串并插入新列。
  • 删除旧表 Ingredient

1 个答案:

答案 0 :(得分:1)

你应该使用db'初始化程序'来实现你想要的东西 - 和/或'种子'的排序(关于在哪里注入EF流程)。

您可> take a look at this post with a customized < initializer - 执行Db Create ...和Migrate 。它不是剪切和粘贴解决方案,但大部分都可以工作(这只是快速解决问题,你需要调整一下,它有几个修复程序)。

MigrateDatabaseToLatestVersion只需要移植部分 - 您需要seed - 暴露 - 或手动包裹该部分(主要内容是针对不同情况进行'检查' - 即何时'参与'进入移民 - 或播种)。

首先应该进行迁移,并且除了播种之外,db'创建'类型没有多大意义。

您覆盖Seed(您创建)以将任何数据库处理放在那里 - 您已公开DbContext - 如果需要,您还可以调用SqlQuery


How to create initializer to create and migrate mysql database?