Comment passer des paramètres à DbMigration.Sql() La Méthode
-
21-12-2019 - |
Question
Lors de l'utilisation d'Entity Framework Migrations, l' DbMigration
classe de base a un Sql méthode qui prend en paramètres un objet anonyme
Je ne peux pas pour la vie de me comprendre comment l'utiliser.
Sql(@"
UPDATE dbo.SlideSets
SET Name = @Name,
", false, new {
Name = "Foo"
}
);
Les résultats dans l'erreur
System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Name"
Quelle est la syntaxe correcte de cette déclaration?
La solution
J'ai creusé l'EF code source et il semble que ce paramètre (ou plutôt le MigrationOperation.AnonymousObject
la propriété qui est créé à partir d'elle) n'est pas utilisé à tous!
J'ai créé un ticket sur leur outil de suivi soit de faire quelque chose ou de supprimer l'api
Autres conseils
Le générateur standard pour MSSQL est de ne rien faire avec l'objet anonyme dans ce cas.Vous avez besoin de mettre le paramètre directement dans la commande.Ou, vous pouvez établir votre propre et de les traiter.