1. ホーム
  2. .net

[解決済み】Dapperでストアドプロシージャを呼び出す方法はありますか?

2022-04-06 19:42:11

質問

の結果にとても感動しています。 Dapper Micro ORM をstackoverflow.comに投稿しました。私は新しいプロジェクトのためにそれを検討していますが、私は1つの懸念を持っている私のプロジェクトは、いくつかの時間ストアドプロシージャを持っている必要があり、私はウェブ上でたくさん検索しましたが、ストアドプロシージャを持つ何かを見つけることができませんでした。だから、Dapperは、ストアドプロシージャで動作するようにする方法はありますか?

可能であれば教えてください。そうでなければ、私の方法で拡張しなければなりません。

解決方法は?

簡単な場合は、こうすればいい。

var user = cnn.Query<User>("spGetUser", new {Id = 1}, 
        commandType: CommandType.StoredProcedure).First();

もっと派手なのがいいなら

 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"); 

さらに、バッチでexecを使うこともできますが、これはより不格好です。