Estoy tratando de ejecutar una instrucción SQL RAW en Entity Framework que toma algunos parámetros. El método que estoy usando es de DbSet.SqlQueryCómo pasar parámetros al método DbSet.SqlQuery en Entity Framework
estoy confundido sobre cómo construir la tabla de objeto params: params Object [] parámetros
Ésta es mi bloque de código aquí:
public ActionResult APILocation(string lat, string lng)
{
string SQL = "select * from (select Distance = ((ACOS(SIN(@lat * PI()/180) * SIN(lat * PI()/180) + COS(@lat * PI()/180) * COS(lat * PI()/180) * COS((@lng - Long) * PI()/180)) * 180/PI()) * 60 * 1.1515) from dbo.Stores) t where Distance < 10 order by Distance asc";
ObjectParameter latParam = new ObjectParameter("lat", lat);
ObjectParameter lngParam = new ObjectParameter("lng", lng);
object[] parameters = new object[] { latParam, lngParam };
var stores = db.Stores.SqlQuery(SQL, parameters);
return Json(stores, JsonRequestBehavior.AllowGet);
}
intenté crear ObjectParameter y ponerlo en una matriz de objetos pero eso no funcionó. ¿Alguien puede dar un ejemplo sobre cómo debería construir los parámetros del objeto params []
Gracias! Flea
Tu publicación no tiene sentido. Le das a tus parámetros los nombres "latitud" y "longitud", pero en la consulta real usas "lat" y "Long". Además, usted nombra los SqlParameters "latParam" y "lngParam", pero no los usa después. – Kugel
Para aquellos que se preguntan cómo definir y usar parámetros correctamente: En el SQL '" Seleccione @YuPaParamName "', en el código 'new SqlParameter (" YourParamName ", 12345);' – Monsignor