ServiceStack.OrmLite 调用存储过程
最近在做关于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 调用存储过程的更多相关文章
- ServiceStack.OrmLite中的一些"陷阱"(2)
注:此系列不是说ServiceStack.OrmLite的多个陷阱,这仅仅个人认为是某一个陷阱(毕竟我踩坑了)而引发的思考. 前文说到了项目需要使用两种不同的数据库语言,虽说前文问题已基本解决了,但是 ...
- ServiceStack.OrmLite中的一些"陷阱"(1)
使用过ServiceStack.Ormlite的人都应该知道,其作为一个轻量级的ORM,使用的便捷度非常高,用起来就一个字:爽!而支撑其便捷度的,是库内大量地使用了扩展方法及静态变量. 首先先从源头入 ...
- ServiceStack.OrmLite 笔记8 -还是有用的姿势
复杂点的使用2 InsertAll, UpdateAll and DeleteAll 的参数要是IEnumerables Each关键字 返回 IEnumerable 并且是延迟加载的 全局设置 当字 ...
- ServiceStack.OrmLite
ServiceStack.OrmLite 谈谈我的入门级实体框架Loogn.OrmLite 每次看到有新的ORM的时候,我总会留意一下,因为自己也写过一个这样的框架,人总是有比较之心的.我可能会d ...
- spring data jpa 调用存储过程
网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1in ...
- myabatis oracle 调用存储过程返回list结果集
Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...
- IBatis.Net使用总结(四)-- IBatis 调用存储过程
IBatis 调用存储过程 http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html http://www.c ...
- SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...
- 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】
疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...
随机推荐
- 剑指Offer06 旋转数组的最小值
/************************************************************************* > File Name: 06_MinNum ...
- 使用c#将多个文件放入文件夹中,并压缩下载
ZipClass.cs 这个是一个压缩文件的类,可直接复制使用,使用到的命名空间是 using System.IO;using ICSharpCode.SharpZipLib;using ICSha ...
- “System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本” 的解决方案
在项目部署过程中ORACLE客户端多次会遇"System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本&qu ...
- Linux vi入门必备
一.vi.vim介绍 文本编辑器分为: (1)基于图形界面,如gedit.geany等: (2)基于命令行,如nano.vi.joe等: 每个命令行界面的文本编辑器都有各自不同的快捷键,比如nan ...
- 十九、android中判断sim卡状态和读取联系人资料的方法
在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...
- ArrayList与List对象用法与区别
比如: 代码如下 复制代码 string[] s=new string[3];//赋值s[0]="a";s[1]="b";s[2]="c"; ...
- js如何检测打开窗口是否存在的三个方法?
js打开窗口一般也就是使用window.open方法: win = window.open(CHILD_WINDOW_URL, CHILD_WINDOW_NAME, CHILD_WINDOW_ATTR ...
- HTML5桌面通知(Web Notifications)实例解析
先上一段代码,ie不支持,Chrome.fireFox.Opera支持 <!DOCTYPE html> <html> <head> <meta http-eq ...
- Ueditor 1.4.3 单独调用上传图片,或文件功能
第一步, 引入文件 <script src="ueditor/ueditor.config.js" type="text/javascript" char ...
- 5.servlet cookie自动登录的实例
1.要建的文档,.java用servlet创建 2.建一张登陆表格 index.jsp <%@ page language="java" import="java. ...