我正在使用Dapper ORM来查询我的数据库。我已经熟悉了查询语法,但是我遇到了参数问题。
以下是有效的查询:
orders = ctx.Query<OrderView>(myQuery, new { Seller = 104386, StatusID = 2, query = "people"});
这会将myQuery中的参数(@ Sherler,@ Status,@ query)映射到这些值,并且它可以正常工作。
但是,在我的程序中,我会动态生成参数并将它们存储在List<ObjectParameter>
中,因此每个参数都有一个名称和一个值。但是,我无法在查询中正常工作。以下是不起作用的示例:
orders = ctx.Query<OrderView>(myQuery, parameters.toArray());
我也尝试将其转换为List<SqlParameter>
,但这也无效。有谁知道如何使用我的参数列表复制工作查询?
答案 0 :(得分:2)
ObjectParameter
是一个EF的东西(System.Data.Entity.dll
),并没有在小巧玲珑中使用。你想在{dapper assembly / namespace中找到DynamicParameters
:
var args = new DynamicParameters();
...
args.Add(name, value); // there are more complex usages, note
...
connection.Query<OrderView>(myQuery, args);
如果你想要更多控制 - 比如你真的想要使用ObjectParameter
- 那也没关系:你只需编写自己的类型来实现SqlMapper.IDynamicParameters
,并且将它传递给精致的人。