关于Microsoft Enterprise Libarary 6的新版本,他们有一个称为ExecuteSprocAccessor
(执行 SP时应返回Ienumerable<T>
)的方法,其所有重载是:
用法示例:
/*1*/ [Description("Return data as a sequence of objects using a stored procedure")]
/*2*/ static void ReadDataAsObjects()
/*3*/ {
/*4*/ // Create an object array and populate it with the required parameter values
/*5*/ object[] paramArray = new object[] { "%bike%" };
/*6*/ // Create and execute a sproc accessor that uses default parameter and outpu`t mappings
/*7*/ IEnumerable<Product> productData = defaultDB.ExecuteSprocAccessor<Product>("GetProductList", paramArray);
/*8*/ //...
/*9*/ //...
/*10*/ }
Additional Info :
参数添加机制(这里)是非常有问题的,因为没有ParameterName to value
关联。
他们所做的只是(在第 5 行)
object[] paramArray = new object[] { "%bike%" };
所以我想如果我有超过 1 个参数,它看起来像:
object[] paramArray = new object[] { "%bike%",19,"lala"... };
这意味着我必须知道 sp 的参数输入顺序的顺序!
注意
其他方法确实有这种附加值到 name :
defaultDB.AddInParameter(sprocCmd, "state", DbType.String, "New York");
Question
有什么方法可以使用ExecuteSprocAccessor
并且仍然进行 ParameterName to value
关联吗?(假设我不知道 sp 输入参数顺序?