このサイトで答えを見つけましたが、どれも機能しません。ASP.NET MVC Web API の単純なストアド プロシージャから結果を返そうとしています。
これは機能します:
ctx.Database.SqlQuery <model>("StoredProc 1251");
しかし、私は常に、そのようにパラメーターをインラインで含めることはお粗末だと考えてきました。
他に試したことはありません-ここにいくつかの例を示します:
//Assuming this variable:
int intValue;
intValue = 1251;
// None of these variations that I have tried work:
ctx.Database.SqlQuery<model>("StoredProc @intValue= {0}", intValue);
ctx.Database.SqlQuery<model>("StoredProc @IntValue", 1251);
ctx.Database.SqlQuery<model>("StoredProc @IntValue", new SqlParameter("@IntValue",1251);
//And 6 or 7 others
すべてで役に立たない SQL Server エラー メッセージが表示されます。
SP付近の構文が正しくありません
これの正しい構文は何ですか?
自分の質問にはまだ答えられませんが、答えが見つかりました:
スタックオーバーフローの他の場所で、正しい構文、または構文の少なくとも1つの正しいオプションを見つけました-このサイトは本当に素晴らしいです-私はほとんどの場合、ここで答えを見つけます!
var myInt = new SqlParameter("@IntVal", SqlDbType.Int);
pMeme_ck.Value = 1251;
return ctx.Database.SqlQuery<ClaimSummary>("EXEC StoredProcedureName @IntVal=@IntVal", myInt);