我有一些函数,其原型看起来有点像这样: public void doThings(string sql, dynamic dParams);
传递动力参数与ExpandoObject
它确实某种SQL与这些参数查询。我没有写,但我必须使用它。
doThings("select * from SomeTable where [email protected] and [email protected]",
new
{
v1 = new Dapper.DbString()
{
Value = "yay",
IsAnsi = true,
Length = 50
},
v2 = new Dapper.DbString()
{
Value = "really",
IsAnsi = true,
Length = 32
}
});
而不是当我第一次把动态PARAMS到ExpandoObject:
dynamic dynParams = new ExpandoObject();
dynParams.v1 = new Dapper.DbString()
{
Value = "yay",
IsAnsi = true,
Length = 50
}
doThings("query here", dynParams);
查询然后返回任何结果,当我做这样的事情,它工作正常。我不想叫doThings()
和写入new
块十倍十个不同的场景,我可能要查询myval2
或myval3
等。有没有什么特别的方式可以传递ExpandoObject
,或者我应该这样做的其他方式?