SQLクエリのパラメータの設定について混乱している

c# dapper orm sql sql-server

質問

私はDapper ORMを使ってデータベースに問い合わせています。私はクエリの構文に慣れてきましたが、パラメータに問題があります。

ここで動作するクエリは次のとおりです。

orders = ctx.Query<OrderView>(myQuery, new { Seller = 104386, StatusID = 2, query = "people"});

これにより、myQuery(@Seller、@StatusID、@query)のパラメータがこれらの値にマップされ、正常に動作します。

しかし、私のプログラムでは、その場でパラメータを生成してList<ObjectParameter>に格納するので、各パラメータには名前と値があります。しかし、私はこれをクエリで正しく動作させることはできません。次に動作しない例を示します。

orders = ctx.Query<OrderView>(myQuery, parameters.toArray());

私もList<SqlParameter>変換しようとしましたが、それはどちらもList<SqlParameter>ません。誰も私のパラメータリストで作業クエリを複製する方法を知っていますか?

受け入れられた回答

ObjectParameterはEFのもの( System.Data.Entity.dll )であり、dapperでは使用されません。あなたは、 DynamicParametersアセンブリ/名前空間内にDynamicParametersとします:

var args = new DynamicParameters();
...
args.Add(name, value); // there are more complex usages, note
...
connection.Query<OrderView>(myQuery, args);

ObjectParameter実際に使用したいなど、もっとコントロールしたい場合は、 SqlMapper.IDynamicParametersを実装する独自の型をSqlMapper.IDynamicParameters 、それをdapperに渡します。



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