C# 对设置SQL查询的参数感到困惑

C# 对设置SQL查询的参数感到困惑,c#,sql,sql-server,orm,dapper,C#,Sql,Sql Server,Orm,Dapper,我正在使用Dapper ORM查询我的数据库。我已经熟悉了查询语法,但在参数方面有问题 以下是有效的查询: orders = ctx.Query<OrderView>(myQuery, new { Seller = 104386, StatusID = 2, query = "people"}); orders=ctx.Query(myQuery,new{Seller=104386,StatusID=2,Query=“people”}); 这将myQuery(@Seller、@S

我正在使用Dapper ORM查询我的数据库。我已经熟悉了查询语法,但在参数方面有问题

以下是有效的查询:

orders = ctx.Query<OrderView>(myQuery, new { Seller = 104386, StatusID = 2, query = "people"});
orders=ctx.Query(myQuery,new{Seller=104386,StatusID=2,Query=“people”});
这将myQuery(@Seller、@StatusID、@query)中的参数映射到这些值,并且可以正常工作

但是,在我的程序中,我会动态生成参数并将它们存储在
列表中,因此每个参数都有一个名称和一个值。但是,我无法使其在查询中正常工作。下面是一个不起作用的示例:

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

我还尝试将其转换为
列表
,但这也不起作用。有人知道我如何使用参数列表复制工作查询吗?

ObjectParameter
是EF东西(
System.Data.Entity.dll
),不在dapper中使用。您希望在dapper程序集/命名空间中使用
动态参数

var args = new DynamicParameters();
...
args.Add(name, value); // there are more complex usages, note
...
connection.Query<OrderView>(myQuery, args);
var args=new DynamicParameters();
...
args.Add(名称、值);//注意,还有更复杂的用法
...
connection.Query(myQuery,args);
如果您想获得更多的控制权(例如,您真的想使用
ObjectParameter
),那也没关系:您只需编写自己的类型来实现
SqlMapper.IDynamicParameters
,并将其传递给dapper