基本的には、exec MySproc @p1, @p2, @p3, @p4
などを手作業で使用することなく、ストアドプロシージャの "素晴らしい" Dapper構文を使用したいと思いますが、さまざまなプロパティを設定して厳密に型指定されたオブジェクトを渡すことができる必要があります。パラメータをマップするために使用されます。私は匿名のオブジェクトでこれを行うことができますが、私が考えているシナリオは、いくつかのフィールドを検索することができる複雑な検索フォームのようなものであり、対応するストアドプロシージャは、 )。Dapperはストアドプロシージャを持つ厳密に型指定されたオブジェクトをサポートしていますか?
は、理想的には私はこのような何か行うことができるようにしたいと思います。しかし
var cust = new Customer();
cust.FirstName = ...
cust.LastName = ...
// using .NET 3.5 so need to use ugly syntax :(
var result = connection.Query<Customer>("MySproc", cust, null, false, null, CommandType.StoredProcedure).Single();
、私のCustomerオブジェクトがダース以上の特性を有することができるので、仕事やエラーをスローしていない、と私この場合、2つしか探していない。 Dapperは、sprocに対応するパラメータが存在しない場合には、それを仮定して、すべてのプロパティをチェックして値を割り当てているようです。
私はPetaPocoを使用して、これに似た何かを行うことができます(強く型付けされたオブジェクトまたはに匿名のオブジェクトを渡す)が、私はPetaPocoがあるよりも、もう少し抽象化された何かを探しています。
Dapper(または他のマイクロORM、私はNHibernateやヘビーウエイトORMを使うことはできません)、または同じ機能を得るために見逃す方法がありますか?何十ものパラメータになる可能性のあるexec文
匿名オブジェクトを使用すると、入力に基づいてオブジェクトを動的に構築することができなくなるので、それは私が恐れていたものです。しかし、ヘルパーメソッドの考え方は面白いです。 –
@WayneM私の編集を参照してください... –
今は面白そうです。私はそれを使って遊んで、それがどのように機能するか見る必要があります。非常に感謝して、サム! –