Como passar parâmetros para DbMigration.Sql() Método
-
21-12-2019 - |
Pergunta
Quando usando o Entity Framework Migrations, o DbMigration
classe base tem um Sql método que recebe parâmetros em um objeto anônimo
Eu não posso para a vida de me descobrir como usá-lo.
Sql(@"
UPDATE dbo.SlideSets
SET Name = @Name,
", false, new {
Name = "Foo"
}
);
Os resultados de erro
System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Name"
Qual a sintaxe correta esta afirmação?
Solução
Pesquisei o EF código-fonte e parece que este parâmetro (ou melhor, o MigrationOperation.AnonymousObject
propriedade que seja criada a partir dele) não é usado em todos!
Eu criei um ticket no issue tracker para fazer algo sobre ele ou remover a api
Outras dicas
O padrão do gerador para o MSSQL é não fazer nada com o anônimo do objeto no presente caso.Você precisa colocar o parâmetro diretamente no comando.Ou você pode obter o seu próprio e lidar com isso.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow