web-dev-qa-db-ja.com

最初にEFコードでストアドプロシージャから出力パラメータを取得する方法

私はEFの初心者で、最初にEFコードを使用しています。出力を読み取る方法を示すリンク https://code.msdn.Microsoft.com/How-to-retrieve-output-e85526ba を取得しました最初にEF dbでparamと入力します。だから誰でも最初にEFコードでストアドプロシージャから出力パラメータを取得する方法を教えてください?

可能であれば、小さなサンプルコードを提供するか、関連記事にリダイレクトしてください。

ありがとう

私は解決策を得た

var outParam = new SqlParameter();
outParam.ParameterName = "TotalRows";
outParam.SqlDbType = SqlDbType.Int;
outParam.ParameterDirection = ParameterDirection.Output;

var data = dbContext.Database.SqlQuery<MyType>("sp_search @SearchTerm, @MaxRows, @TotalRows OUT", 
               new SqlParameter("SearchTerm", searchTerm), 
               new SqlParameter("MaxRows", maxRows),
               outParam);
var result = data.ToList();
totalRows = (int)outParam.Value;
11
Monojit Sarkar

ストアドプロシージャコールのデータを取得するには、次を使用できます。

using(var db = new YourConext())
{
       var details = db.Database.SqlQuery<YourType>("exec YourProc @p", 
                      new SqlParameter("@p", YourValue));
}

YourType:intまたはstringまたはlongまたはComplexType

@ p:ストアドプロシージャにパラメーターがあり、パラメーターから必要な数だけ定義できる場合

sqlQueryに関する詳細情報が必要な場合は、次を確認してください。

  1. エンティティのSQLクエリの作成
  2. Entity Framework Code Firstおよびストアドプロシージャ

これがあなたを助けることを願っています

5
Monah