我正在尝试使用Dapper使用VB.NET(和.NET 4.0)调用具有几个输出参数的存储过程。
但是,似乎我无法使用DynamicParameters.Add
方法,因为我收到以下编译器错误:
“添加”是不明确的,因为“Dapper.DynamicParameters”类中存在多种具有此名称的成员。
...当我尝试写下面这一行时:
p.Add("@NewRecordID", DbType:=DbType.Int32, direction:=ParameterDirection.Output)
快速搜索告诉我,当使用具有多个方法的C#库时,有时会发生这种情况,这些方法仅在名称大小写方面不同(VB.NET不区分大小写)。搜索短小精悍源代码DynamicParameters
确实表现出以下两个重载的Add
方法,但它们都使用相同的情况下,编译器应该能够在两者之间进行辨别。
public void Add(string name, object value, DbType? dbType, ParameterDirection? direction, int? size)
public void Add(string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null, byte? precision = null, byte? scale = null)
(我也试过添加scale:=Nothing
to call强制第二次重载,但没有用。)
虽然我可以通过将一个匿名对象传递给DynamicParameters
构造函数来DynamicParameters
输入参数DynamicParameters
,但在添加输出参数时我无法找到解决方法。
我检查了项目引用,以确保没有多个或模糊的程序集引用。
有没有人以前遇到过这个问题,并找到了解决方法?
从我可以收集到的,以下是所有可能的解决方案:
DynamicParameters.Add
。