我有一个数据调用方法,返回ItemDatumCollection类型的SubSonic集合 .
sproc执行如下:
itemDatumCollection.LoadAndCloseReader(sp.GetReader());
但是,我无法以这种方式访问sproc的输出参数,因为我可以在调用sp.GetDataSet()时执行以下操作:
itemsDataSet = sp.GetDataSet();
actualNumberOfResults = ((Int64)sp.OutputValues[1]);
numberOfResultsReturned = ((Int64)sp.OutputValues[2]);
有没有办法用第一种方法访问sproc的输出参数 - 从我的sproc调用中返回一个SubSonic强类型集合?
谢谢 .
1 回答
我想做类似的事情,最后改变了大部分的StoredProcedures.tt文件,我想一些SubSonic的内部 . 没有太详细,我改变.tt文件,以便它为给定的存储过程生成这个:
所以基本上我传入任何sproc参数,并为返回值定义'out'参数 .
这里也没有显示,但是如果我有一个InOut参数,那么我将它传递给
ref
而不是out
.然后在我的实际应用程序代码中,我可以像任何其他函数一样调用存储过程:
我不知道这是否会在没有进一步更改的情况下直接插入SS,但这是我的.tt文件 . 你也许可以使用它,或者至少得到一些关于去哪里的想法:
StoredProcedures.tt:
我很确定我还必须更改在数据库提供程序.ttinclude文件中加载存储过程数据的查询,以加载指示它是In,Out还是InOut参数类型的列 .
...希望这在某种程度上有所帮助......