EF核心遷移錯誤的拉丁語SQL編碼

asp.net-core-1.0 c# entity-framework-core

我有一個EF7的ASP.NET Core 1.0項目。當我使用SQL命令和拉丁字符添加遷移時,我將它們替換為“?”更新數據庫時。

我們來看一個例子:

public partial class TestEncodingMigration : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.Sql(@"some text with latin chars : á é í ñ");
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
    }
}

這是我從遷移中得到的腳本:

PM> dnx ef migrations script <some prev migration> -c MyDbContext

some text with accent: ? ? ? ?
;

GO

INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20160216162901_TestEncodingMigration', N'7.0.0-rc1-16348');

如您所見,所有拉丁字符都被“?”取代

一般承認的答案

我遇到了同樣的問題,我通過UTF-8編碼再次保存遷移文件解決了這個問題。

似乎add-migration使用ANSI編碼創建文件。

因此,在記事本中打開遷移* .cs然後在文件 - >另存為,在底部設置編碼為UTF-8然後覆蓋。


熱門答案

這是RC1的一個錯誤,正如這裡所討論的那樣,它計劃在RC2中得到解決



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow