J'ai un projet ASP.NET Core 1.0 avec EF7. Lorsque j'ajoute une migration avec une commande SQL et des caractères latins, je les remplace par "?" lors de la mise à jour de la base de données.
Voyons un exemple:
public partial class TestEncodingMigration : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(@"some text with latin chars : á é à ñ");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
Et voici le script que je tire de cette migration:
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');
Comme vous pouvez le constater, tous les caractères latins ont été remplacés par "?"
J'ai eu le même problème et je l'ai résolu en enregistrant à nouveau le fichier de migration avec le codage UTF-8.
Il semble que add-migration crée des fichiers avec le codage ANSI.
Donc, ouvrez la migration * .cs dans le bloc-notes, puis Fichier-> Enregistrer sous et en bas, définissez Encoding sur UTF-8 puis écrasez-le.