最近在做关于ServiceStack.OrmLite调用存储过程时,有问题。发现ServiceStack.OrmLite不能调用存储过程,或者说不能实现我想要的需求。在做分页查询时,我需要传入参数传出参数。

ServiceStack.OrmLite 调用存储过程代码:

存储过程:usp_GetCarComponentsList

传入参数:@page,@limit

传出参数:@pageCount ,@totalCount

问题描述:参数传入在数据库中不能接收,不知道是写法问题,还是其他原因。即便传入能用,但是输出参数我该怎么接收?

     var list = db.SqlList<Common_CarComponents_Params>("EXEC usp_GetCarComponentsList @page,@limit,@pageCount,@totalCount ", new
{
TrademarkId = TrademarkId,
SubTrademarkId = SubTrademarkId,
page = page,
limit = limit,
pageCount = ,
totalCount =
});

解决方案:使用Dapper的DynamicParameters用来实现就好办了。

1、步骤:

PM> Install-Package Dapper
已安装“Dapper 1.42”。
正在将“Dapper 1.42”添加到 Product.ServiceInterface。
已成功将“Dapper 1.42”添加到 Product.ServiceInterface。

代码:

 var dynamicParameters = new DynamicParameters();
dynamicParameters.Add("@TrademarkId", TrademarkId);
dynamicParameters.Add("@SubTrademarkId", SubTrademarkId);
dynamicParameters.Add("@page", page);
dynamicParameters.Add("@limit", limit);
dynamicParameters.Add("@pageCount", dbType: DbType.Int32, direction: ParameterDirection.Output);
dynamicParameters.Add("@totalCount", dbType: DbType.Int32, direction: ParameterDirection.Output); var list2 = db.QueryMultiple("usp_GetCarComponentsList", dynamicParameters, commandType: CommandType.StoredProcedure); var firstSet = list2.Read().ToList();
int pageCount = dynamicParameters.Get<int>("@pageCount");
int totalCount = dynamicParameters.Get<int>("@totalCount");            

很明显这就是一个分页查询,接下来就不用说了。

ServiceStack.OrmLite 调用存储过程的更多相关文章

  1. ServiceStack.OrmLite中的一些"陷阱"(2)

    注:此系列不是说ServiceStack.OrmLite的多个陷阱,这仅仅个人认为是某一个陷阱(毕竟我踩坑了)而引发的思考. 前文说到了项目需要使用两种不同的数据库语言,虽说前文问题已基本解决了,但是 ...

  2. ServiceStack.OrmLite中的一些"陷阱"(1)

    使用过ServiceStack.Ormlite的人都应该知道,其作为一个轻量级的ORM,使用的便捷度非常高,用起来就一个字:爽!而支撑其便捷度的,是库内大量地使用了扩展方法及静态变量. 首先先从源头入 ...

  3. ServiceStack.OrmLite 笔记8 -还是有用的姿势

    复杂点的使用2 InsertAll, UpdateAll and DeleteAll 的参数要是IEnumerables Each关键字 返回 IEnumerable 并且是延迟加载的 全局设置 当字 ...

  4. ServiceStack.OrmLite

    ServiceStack.OrmLite 谈谈我的入门级实体框架Loogn.OrmLite   每次看到有新的ORM的时候,我总会留意一下,因为自己也写过一个这样的框架,人总是有比较之心的.我可能会d ...

  5. spring data jpa 调用存储过程

    网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1in ...

  6. myabatis oracle 调用存储过程返回list结果集

    Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...

  7. IBatis.Net使用总结(四)-- IBatis 调用存储过程

    IBatis 调用存储过程 http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html http://www.c ...

  8. SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

    我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...

  9. 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】

    疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...

随机推荐

  1. 最初步的正则表达式引擎:nfa的转换规则。

    [在此处输入文章标题] 正则到nfa 前言 在写代码的过程中,本来还想根据龙书上的说明来实现re到nfa的转换.可是写代码的时候发现,根据课本来会生成很多的无用过渡节点和空转换边,需要许多的代码.为了 ...

  2. Shuffle an Array

    class Solution { private: vector<int> arr, idx; public: Solution(vector<int> nums) { sra ...

  3. hdu 4700 那个啥树

    思路:我也不知道叫什么树,但是构造过程能理解. 我们可以将先将边按降序排序,那么就用kruskaer构造生成树.构造好的生成树也就是满足条件的图,因为点i,j的最大流量就是生成树上点i到点j的路径上的 ...

  4. 每日一词【命令行CMD】

    CURL 中文:命令行URL下载 英文解释:CommendLine Uniform Resource Locator 使用场景: 文件传输 curl是利用URL语法在命令行方式下工作的开源文件传输工具 ...

  5. Table of Contents - Apache Commons

    Apache Commons 简述 CLI Usage of CLI Option Properties Codec 常见的编码解码 Compress Configuration2 Quick sta ...

  6. Part 4 Identity Column in SQL Server

    Identity Column in SQL Server If a column is marked as an identity column, then the values for this ...

  7. WinDbg配置与下载 (转载)

    WinDbg配置和使用基础     WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. 1. Win ...

  8. WPF串口通信数据采集

    使用WPF做的串口数据采集并动态显示在表格中的小程序,程序运行之后,自动打开串口,从COM1接收数据,并把接收到的数据进行处理显示在DataGrid中. 串口通信程序是从另外一个串口助手中扒的,去掉了 ...

  9. C# 线程--第一单线程基础

    概念 什么是进程? 当一个程序被打开运行时,它就是一个进程.在进程中包括线程,进程可以由一个或多个线程组成. 什么是线程? 线程是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC), ...

  10. UI1_Calayer

    // // ViewController.m // UI1_Calayer // // Created by zhangxueming on 15/7/2. // Copyright (c) 2015 ...