PetaPoco和存储过程的输出参数?

时间:2011-12-23 04:12:42

标签: stored-procedures petapoco output-parameter

我正在尝试使用PetaPoco设置输出参数。我发现有人在网上使用这个样本:

var ctx = new CustomDBDatabase();
var total = new SqlParameter("Total", System.Data.SqlDbType.Int);
total.Direction = System.Data.ParameterDirection.Output;

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount = @Total out", 
  id, start, max, total);

int totalCount = (int)total.Value;

但是,total.value返回null,即使我直接针对SQL Server运行此语句,它也会返回3.这是否与PetaPoco正确设置?是否支持输出参数?

感谢。

1 个答案:

答案 0 :(得分:9)

支持此功能。但无论如何,你目前的语法都是错误的。

var ctx = new CustomDBDatabase();
var total = new SqlParameter("TotalCount", System.Data.SqlDbType.Int);
total.Direction = System.Data.ParameterDirection.Output;

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount OUTPUT", new { StartIndex = start, MaxIndex = max, TotalCount = total});

int totalCount = (int)total.Value;

这样的事情应该可行。不太确定sql语法,但这应该可以帮助你。