Sto tentando di eseguire un'istruzione SQL RAW in Entity Framework che richiede alcuni parametri. Il metodo che sto usando è da DbSet.SqlQueryCome passare i parametri al metodo DbSet.SqlQuery in Entity Framework
sono confuso su come costruire la serie oggetto params: params object [] parametri
Questo è il mio blocco di codice qui:
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);
}
Ho cercato di creare ObjectParameter e metterlo in un array di oggetti ma non ha funzionato. Qualcuno può fornire un esempio su come dovrei costruire i parametri params oggetto []
Grazie! Pulce
Il tuo post non ha senso. Dai il tuo nome ai parametri "latitudine" e "longitudine" ma nella query effettiva usi "lat" e "Long". Inoltre, si chiamano SqlParameters "latParam" e "lngParam", ma in seguito non li si utilizza. – Kugel
Per quelli che si chiedono come definire e utilizzare correttamente i parametri: In SQL '" Seleziona @YourParamName "', nel codice 'new SqlParameter (" YourParamName ", 12345);' – Monsignor