LUKIYA'S NEVERLAND

春去秋来,花谢花开。


在做系统开发的时候,使用动态分页存储过程已经被认为是提高工作效率的最好方法之一。

但是,如果你也和我一样,喜欢追求新技术,那么在体验DLINQ的时候,会被这个以前使用其他ORM工具非常容易实现的功能而苦恼。

微软的DataContext类并没有给我们提供一种可以取得存储过程OUTPUT参数值的方法。

或许,你已经先到了使用DataContext的ExecuteQuery<>方法配合SQL的EXEC关键字,但是这种方法貌似并不能取得OUTPUT参数的值,至少我尝试了很久都没成功。

再或许,你又想到了直接把动态分页存储过程拖拽进IDE环境让他自动生成存储过程的方法,但是……很可惜ExecuteMethodCall方法不支持泛型。。。

后来我又尝试了在拖拽的代码基础上直接返回IMultipleResults类型,这次倒是成功返回了数据集,可是才开心了一会儿就乐极生悲,单元测试时出现异常,调试后发现如果没有搜索到数据时会提示某个字段不存在。。。

既然都不行,那么我们只好自己动手写一个了:

 

动态分页存储过程如下:

代码如下:

经测试效果良好~

但是我总觉得在不自定义方法的前提下可以使用DataContext类自己的方法实现,希望有成功的朋友指教一二。