2012-01-10 4 views
3

PetaPocoを使用すると、型付きパラメータを持つストアドプロシージャをどのように呼び出すことができますか? C#で 私はこのようにそれを実行します。型付きパラメータを使用したPetaPocoクエリ

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

答えて

5

は詳細についてはdocumentationをチェックしますが、ここで抽出物です。

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

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

PetaPocoは今直接 クエリにIDbParameterオブジェクトを渡すことをサポートしています。 PetaPocoがプロパティを正しくマップしないと便利です。

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

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

本の興味深い副作用はあなたにもPetaPocoのデフォルトを上書きグローバルにPetaPoco.IMapper インターフェースからIDbParameterを返すことができる ということですパラメータマッピング 機能

+0

は、私はちょうど1 IDbParameterがクエリで複数回使用されたときのために、バグを修正するためにPetaPoco(https://github.com/CollaboratingPlatypus/PetaPoco/pull/272)にプルリクエストを追加しました。パラメータが値型ではないため、1つのパラメータを多くのPetaPoco内に展開するとエラーが発生します。 – David

関連する問題