SQL インジェクション攻撃を防ぐために、ExecuteStoredProcedure から sql を実行するときにパラメーター化されたクエリを使用する必要があるかどうか疑問に思っていますか?
このMSDN リンクによると、パラメーターを使用する必要があります。
この他の MSDN リンクによると、{0} を使用する SQL 文字列は、パラメーターを使用するのと同じです。
では、SQL ステートメントに {0} や {1} などを含めるだけで本当に問題ないのでしょうか。
var rv = _context.ExecuteStoreQuery<int>("select ID from table where typeID = {0}", typeID);
または私は必要ですか:
var param = new SqlParameter("@typeID", SqlDbType.Int);
param.Value = typeID;
var rv = _context.ExecuteStoreQuery<int>("select ID from table where typeID = @typeID", param);