这是Dapper示例中的代码剪切:
var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
cnn.Execute("spMagicProc", p, commandType: commandType.StoredProcedure);
int b = p.Get("@b");
int c = p.Get("@c");
任何人:在上面提供的示例代码中,我收到错误“无法解析.Execute” - 引用cnn.Execute
。我查看连接对象,没有Execute的方法。小巧玲珑显然效果很好,所以我做错了什么?
答案 0 :(得分:8)
我相信这应该能让你解决问题:
using( var connection = new SqlConnection( connectionString ) )
{
try
{
var p = new DynamicParameters();
p.Add( "a", 11 );
p.Add( "b", dbType: DbType.Int32, direction: ParameterDirection.Output );
p.Add( "c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue );
connection.Open();
connection.Execute( "MyDamnStoredProc", p, commandType: CommandType.StoredProcedure );
int b = p.Get<int>( "b" );
int c = p.Get<int>( "c" );
}
catch( Exception ex )
{
Console.WriteLine( ex.Message );
}
}
备注强>:
commandType:
参数。这样做是为了可以从方法调用中省略可选参数。答案 1 :(得分:7)
“无法解决。执行”
这会导致您的扩展方法丢失,您是否在文件顶部using Dapper;
。
另请参阅:http://msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic3