Dapper-Dot-Netサンプルコード

dapper sample

質問

これは、Dapperの例からすぐに切り取ったコードです:

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("@b");
int c = p.Get("@c");

誰でも :上記の例のコードでは、「解決できません.Execute」というエラーが表示され、cnn.Executeを参照していcnn.Execute 。私は接続オブジェクトを見て、実行のためのメソッドがありません。 Dapperは明らかにうまく動作するので、何が間違っていますか?

受け入れられた回答

私はこれがあなたを修正する必要があると信じています:

using( var connection = new SqlConnection( connectionString ) )
{
    try
    {
        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 );
        connection.Open();
        connection.Execute( "MyDamnStoredProc", p, commandType: CommandType.StoredProcedure );
        int b = p.Get<int>( "b" );
        int c = p.Get<int>( "c" );
    }
    catch( Exception ex )
    {
        Console.WriteLine( ex.Message );
    }
}

  1. paramsには@記号は必要ありません。ダッパーがあなたのためにそれを処理します。
  2. 名前付きパラメータを必ず使用してください。 commandType:パラメーターを指定する更新されたconnection.Executeメソッドを参照してください。オプションのパラメータをメソッド呼び出しから省略できるように、これを行います。

人気のある回答

"解決できません。実行"

あなたの拡張メソッドが見つからない場合は、 using Dapper;using Dapper;しましたか?あなたのファイルの先頭に。

参照: http : //msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic3



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ