gpt4 book ai didi

sql - 执行自定义 SQL 脚本作为 Entity Framework 迁移的一部分

转载 作者:行者123 更新时间:2023-12-03 15:22:49 24 4
gpt4 key购买 nike

我一直在使用标准的添加迁移方法来更新 Entity Framework 上的 aspnet 核心数据库。我现在必须将两个“图像”列移动到一个新表(及其图像数据)中,从原始表中删除这些列,并在新旧表之间设置外键关系。我有一个可用的 SQL 脚本来完成所有这些。

如何将这个 sql 脚本作为正常 EF 迁移的一部分执行,并确保后续的添加迁移更改将反射(reflect)我的 sql 脚本将执行的更改(添加新表/列,从原始表中删除图像列)?

我已经看到了一些对 SqlFile 和从 DbMigration 派生的引用,但没有任何内容非常适合我的场景。我正在使用 EF Core,aspnet 核心 2.0。

最佳答案

您可以编辑创建的迁移类( UpDown 方法)并在正确的位置包含您想要的任何 SQL:

protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "MyExtraColumn",
table: "MySuperTable");

migrationBuilder.Sql("DROP DATABASE [master]"); // <<< Anything you want :)

migrationBuilder.DropColumn(
name: "MyExtraColumn2",
table: "MySuperTable");
}

您有责任不“破坏”数据库模式(从 EntityFramework 的角度来看)并提供可靠的 Down脚本能够多次向上/向下/向上/向下迁移。

另外,如果您要删除迁移并重新添加它,请不要忘记再次重新添加 SQL。

关于sql - 执行自定义 SQL 脚本作为 Entity Framework 迁移的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com