3

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

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

例子

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

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

1 回答 1

1

您应该使用 db 'initializer' 来满足您的需求 - 和/或某种“种子”(关于注入 EF 流的位置)。

您可以> 使用自定义的 < -查看这篇文章, 它同时执行 Db Create... 和 Migrate。它不是剪切和粘贴解决方案,但大多数情况下都有效(这只是解决问题的快速方法,您需要进行一些调整,它在下面有几个修复)。 initializer

MigrateDatabaseToLatestVersion仅对迁移部分进行剂量-您需要seed暴露-或手动包装该部分(重点是针对不同情况进行的“检查”-即何时“参与”迁移-或播种)。

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

您覆盖Seed(您创建)以将任何数据库处理放在那里 - 您已经暴露了-如果需要 DbContext,您也可以调用。SqlQuery


如何创建初始化程序来创建和迁移 mysql 数据库?

于 2013-04-08T00:59:18.033 回答