我有一些函數,其原型看起來有點像這樣: 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
,或者我應該這樣做的其他方式?