发现一个疑似BUG的用法-存储过程+DataReader 返回
var result = _db.Ado.UseStoredProcedure(() =>
{
string spName = "Get对AA";
return _db.Ado.GetDataReader(spName, new { AAName });
});
var dataReader = result;
var opp = _db.Ado.DataReaderParameters.Count; // 不为0!!没有把@AAName 清掉!!!
源代码:
public T UseStoredProcedure<T>(Func<T> action)
{
...
this.IsClearParameters = false; // 设置为false
if (action != null)
{
result = action();
}
this.CommandType = oldCommandType;
this.IsClearParameters = true;
return result;
}
public virtual IDataReader GetDataReader(string sql, params SugarParameter[] parameters)
{
try
{
...
if (isSp)
DataReaderParameters = sqlCommand.Parameters;
if (this.IsClearParameters) // 被设置为false了
sqlCommand.Parameters.Clear();
...
}
热忱回答(1)
-
fate stay night VIP0
2018/9/14http://www.donet5.com/Doc/8/1133 功能都是好的没有BUG 按文档用法
0 回复