我有一个带有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,然后在File-> Save As中打开,并在底部将Encoding设置为UTF-8,然后覆盖。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句