我正在通过添加自定义SQL来进行必要的更改来自定义复杂的数据迁移。
例如,我有一个包含产品名称的PurchaseOrders表,但我要将它更改为Products表的外键。因此,我需要编写自定义SQL,将每个外键设置为匹配产品的ID (这必须在迁移将外键设置为非空之前完成)。
但是,产品名称可能与任何产品不匹配。在这种情况下,我想用用户必须首先添加缺少的产品的消息将其标记为错误。
问题:
MigrationBuilder.Sql()不能返回查询结果,以便检查未知的产品名称。有什么方法可以从迁移中执行这样的检查吗?发布于 2022-10-08 19:54:22
在深入研究这个问题之后,我发现我想做的事情并没有什么意义。
Up()和Down()方法所做的就是配置即将生成的SQL脚本。
因此,MigrationBuilder.Sql()不会立即运行。它只是定义了要添加到脚本中的SQL。这就是为什么这个方法不能返回结果的原因。
结果脚本可以在多个数据库上运行(具有不同的数据状态和有效性)。因此,在生成脚本时执行检查并不完全有意义。
https://stackoverflow.com/questions/73999685
复制相似问题