にDbSet.SqlQueryメソッドにパラメータを渡します。私が使っている方法は、私がのparamsオブジェクトの配列を作成する方法について混乱していますDbSet.SqlQueryは、どのように私はいくつかのパラメータを取りますエンティティフレームワークでRAW SQL文を実行しようとしていますEntity Frameworkの
からです:paramsはこれがここに私のコードブロックである[]パラメータ
オブジェクト:
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);
}
私が作成してみましたObjectParameterとそれをオブジェクト配列に入れても動作しませんでした。誰かが私が
おかげのparamsオブジェクト[]パラメータを構築する方法についての例を提供することができます! ノミ
あなたの投稿には意味がありません。あなたのパラメータ名「緯度」及び「経度」を与えるが、実際のクエリでは、あなたは「緯度」と「ロング」を使用します。また、あなたは「latParam」と「lngParam」SqlParametersに名前を付けていますが、その後、それらを使用しないでください。 – Kugel
パラメータを正しく定義して使用する方法を知りたい方へ: SQLの '' Select @YourParamName ''、コード' new SqlParameter( "YourParamName"、12345); ' – Monsignor