私は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エンコーディングで再度マイグレーションファイルを保存して解決しました。
アドイマイグレーションはANSIエンコーディングでファイルを作成するようです。
したがって、メモ帳でマイグレーション* .csを開き、ファイル→名前を付けて保存し、その下にEncodingをUTF-8に設定して上書きします。