Jar*_*rod 14 c# mysql database dapper
我正在尝试使用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,
}));
Run Code Online (Sandbox Code Playgroud)
Dapper抛出一个异常'参数'@Status'必须定义'.我知道Dapper在进行批量插入和更新时可以处理参数列表,但它是否可以不进行选择?
Red*_*ter 18
试试这个:
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});
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 10
啊,我想我明白你的意思了......
是的,我们支持的方案Execute不支持Query,具体来说:使用一系列不同的参数值顺序运行相同的操作.这有意义Execute,但对于查询,它可能意味着您应该使用查看不同的查询in.或者,只需循环和连接.
相反,它正在查看单个参数对象并查找公共值 - 可枚举的dapper没有任何合适的参数值.