首页 > 解决方案 > 如何让 EntityFramework Migration 为不同的数据库提供程序运行不同的 SQL

问题描述

我有一个 Entity Framework 6 应用程序。我正在将它从 SQL Server 迁移到 PostgreSQL。其中一个迁移如下所示:

使用 System.Data.Entity.Migrations;

public partial class SetIsActiveToTrue : DbMigration
{
    public override void Up()
    {
        Sql(@"UPDATE dbo.""AspNetUsers"" SET ""IsActive"" = 1;");
    }

    public override void Down()
    {
    }
}

}

这在 SQL 服务器上运行良好,但在 PostgreSQL 上失败,因为 IsActive 列是一个布尔值并且期望 True/False 而不是 1/0。有没有办法让迁移为每个数据库运行不同的 SQL?

我查看了所有基类项目,但它们似乎都没有提供提供者类型。Up 和 Down 方法也不接受带有此信息的任何参数。

标签: entity-frameworkentity-framework-6

解决方案


推荐阅读