Dapper输出参数被mysql

时间:2016-04-24 06:21:59

标签: c# mysql dapper

我正在尝试从Mysql 5.6.10(AWS Aurora)的测试套件中运行这个简单的Dapper示例。

var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction:ParameterDirection.Output);
cnn.Execute(@"set @c = @a + @b", p);
var results = p.Get<int>("@c");

然而,正在抛出异常。 @c被解释为NULL&gt; enter image description here

我想使用两个输出参数来返回受insert语句和最后插入ID影响的行数。

1 个答案:

答案 0 :(得分:1)

我发现用dapper从mysql中取出参数似乎是不可能的,所以我修改了一些代码来实现结果。

var p = new DynamicParameters(new { a = 1, b = 2 });
//p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
//conn.Execute(@"set @c = @a + @b", p);
using (var reader = conn.ExecuteReader(@"set @c = @a + @b; select @c;", p))
{
    //var results = p.Get<int>("@c");
    if (reader.Read())
    {
        var result = reader.GetInt32(0);
    }
}