ストアドプロシージャusing Dapper.Net
を呼び出して戻り値を取得しようとしています。ストアドプロシージャを使用したDapper.netクエリの戻り値
p.Add("@INCIDENT_ID", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
var retResults = con.Execute("usp_GetIncidentID", p, commandType:CommandType.StoredProcedure);
int IncidentID = p.Get<int>("INCIDENT_ID");
私はパラメータの方向と"@INCIDENT_ID"
を使用していくつかの異なることを試しました。結果をステップ実行すると、適切な戻り値がretResults
の値になっていることがわかりますが、以下のようにドキュメントに記載されている方法で値にアクセスすることはできません。
ストアドプロシージャ Dapperのは、完全に保存されprocsのサポート:
var user = cnn.Query<User>("spGetUser", new {Id = 1},
commandType: CommandType.StoredProcedure).First();}}}
If you want something more fancy, you can do:
var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
cnn.Execute("spMagicProc", p, commandType: commandType.StoredProcedure);
int b = p.Get<int>("@b");
int c = p.Get<int>("@c");
「ドキュメントに記載されている方法で値にアクセスできません。」 – MethodMan
試みました 'var IncidentID = con.Query(" usp_GetIncidentID "、commandType:CommandType.StoredProcedure).SingleOrDefault();'?これは最も簡単で、ストアドプロシージャが "select"を介して値を返す場合に機能します –
これまで試したことがありますが、私は前に見てきた {DapperRow、INCIDENT_ID = '902306'}その値にアクセスしようとすると問題が発生します。 – yellowfever