基本的に、手動で使用する必要なく、ストアド プロシージャに「適切な」Dapper 構文を使用したいのですがexec MySproc @p1, @p2, @p3, @p4
、さまざまなプロパティが設定された厳密に型指定されたオブジェクトを渡して、このオブジェクトを使用できるようにする必要があります。パラメータをマッピングします。匿名オブジェクトでこれを実行できることはわかっていますが、私が考えているシナリオは、複数のフィールドを検索できる複雑な検索フォームのようなもので、対応するストアド プロシージャには非常に多くのパラメーター (多くは既定値) を含めることができます。 )。
理想的には、次のようなことができるようになりたいと思います。
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 オブジェクトには 12 個以上のプロパティがある可能性があり、この場合は 2 つしか探していないため、これは機能せず、エラーがスローされます。Dapper は、すべてのプロパティをチェックして値を割り当てるだけのようです。sproc に対応するパラメーターがない場合でも存在すると仮定します。
PetaPoco (厳密に型指定されたオブジェクトまたは匿名オブジェクトを渡す) を使用してこれと同様のことを行うことができますが、PetaPoco よりももう少し抽象化されたものを探しています。
私がやりたいことはDapper(または別のマイクロORM?NHibernateまたは重いORMを使用できません)で可能ですか、または同じ機能を取得するために見逃している方法はありますか?ダースのパラメータになる可能性がありますか?