パラメータのリストを持つ大まかなクエリ

c# dapper database mysql

質問

Dapperを使って既知のパラメータセットを使ってクエリを実行しようとしていますが、それらのパラメータの値のリストがあります。私がしようとしていることの簡単な例は次のようになります:

DateTime endDate = DateTime.Now;
DateTime startDate = endDate.AddHours(-24);

string query = "select COUNT(*) from Test where Status = @Status AND DateCreated <= @Hour;";
var stuff = con.Query(query, (startDate).ByHourTo(endDate).Select(hour => new
{
     Status = 1,
     Hour = hour,
}));

Dapperは 'Parameter' @Status 'を定義する必要があります'という例外をスローします。 Dapperは一括挿入と更新を行う際にパラメータのリストを処理できますが、選択に対してはこれを行うことはできませんか?

受け入れられた回答

ああ、私はあなたが何を意味するかを見ていると思う...

はい、クエリーでサポートされていないExecuteをサポートするシナリオがあります。具体的には、さまざまなパラメータ値の範囲で同じ操作を順番に実行します。これはExecuteには意味がありますが、クエリではおそらくinを使って別のクエリを調べる必要があります。代わりに、ループと連結するだけです。

代わりに、単一のパラメータオブジェクトを調べてパブリック値を探しています。つまり、enumerableにはdapperのパラメータ値はありません。


人気のある回答

これを試して:

List<string> names = new List<string> { "Bob", "Fred", "Jack" };
string query = "select * from people where Name in @names";
var stuff = connection.Query<ExtractionRecord>(query, new {names});


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow