Solución:
Prueba esto:
var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id";
ctx.Database.ExecuteSqlCommand(
sql,
new SqlParameter("@FirstName", firstname),
new SqlParameter("@Id", id));
Resulta que esto funciona.
var firstName = "John";
var id = 12;
var sql = "Update [User] SET FirstName = {0} WHERE Id = {1}";
ctx.Database.ExecuteSqlCommand(sql, firstName, id);
Tu también puedes:
1) Pase argumentos sin procesar y use la sintaxis {0}. P.ej:
DbContext.Database.SqlQuery("StoredProcedureName {0}", paramName);
2) Pase los argumentos de la subclase DbParameter y use la sintaxis @ParamName.
DbContext.Database.SqlQuery("StoredProcedureName @ParamName",
new SqlParameter("@ParamName", paramValue);
Si usa la primera sintaxis, EF realmente ajustará sus argumentos con clases DbParamater, les asignará nombres y reemplazará {0} con el nombre del parámetro generado.
La primera sintaxis si se prefiere porque no necesita usar una fábrica o saber qué tipo de DbParamaters crear (SqlParameter, OracleParamter, etc.).
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)