c# – 如何使用Entity Framework Core运行迁移SQL脚本

前端之家收集整理的这篇文章主要介绍了c# – 如何使用Entity Framework Core运行迁移SQL脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了一个问题,我无法访问sql脚本来应用迁移.
这是我的迁移代码
public partial class AddSomethingMigration : Migration
{
    private const string MIGRATION_sql_SCRIPT_FILE_NAME = @"Migrations\Scripts\20170710123314_AddSomethingMigration.sql";

    protected override void Up(MigrationBuilder migrationBuilder)
    {
        string sql = Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).FullName,MIGRATION_sql_SCRIPT_FILE_NAME));
        migrationBuilder.sql(File.ReadAllText(sql));
    }
}

因此,当我在本地计算机上使用程序包管理器控制台时,一切正常.但是当我部署到环境中时,我得到了与文件的差异.

我可以自动通过EF迁移运行我的静态sql脚本,还是应该在代码中内嵌SQL查询

解决方法

我找到了这个问题的几个答案.

>将脚本添加为项目资源并使用它:

string sql = Resources._20170630085940_AddMigration;
    migrationBuilder.sql(sql);

这个选项不太好,因为.sql会嵌入程序集中.

>如果您使用.csproj结构的Net Core项目,则可以将itemgroup添加到xml:

<ItemGroup> <Content Include="Migrations\**\*.sql" CopyToPublishDirectory="PreserveNewest" /><!-- CopyToPublishDirectory = { Always,PreserveNewest,Never } --></ItemGroup>

然后指定文件的路径,如:

Path.Combine(AppContext.BaseDirectory,relativePath)
原文链接:https://www.f2er.com/csharp/243966.html

猜你在找的C#相关文章