4

PetaPoco を使用して、型付きパラメーターを使用してストアド プロシージャを呼び出すにはどうすればよいですか? C#では、次のようにします:

cmd.Parameters.Add("@email", SqlDbType.NVarChar).Value = email;
4

1 に答える 1

6

詳細についてはドキュメントを確認してくださいが、ここに抜粋があります。

http://www.toptensoftware.com/Articles/114/PetaPoco-What-s-new-in-v4-0

SQL引数としてのIDbParametersのサポート

PetaPocoは、IDbParameterオブジェクトをクエリに直接渡すことをサポートするようになりました。これは、PetaPocoがプロパティを正しくマップしない場合に便利です。

たとえば、SQL Serverドライバーは、パラメーターが正しいタイプで構成されていない限り、VarBinary列へのDbNullの割り当てを処理しません。これを回避するには、次のようにします。

databaseQuery.Execute("insert into temp1 (t) values (@0)", new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DbNull.Value });

これの興味深い副作用の1つは、PetaPoco.IMapperインターフェイスからIDbParameterを返して、PetaPocoのデフォルトのパラメーターマッピング機能をグローバルにオーバーライドできることです。

于 2012-01-11T00:15:54.000 に答える