• 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 = 0,
                            totalCount = 0
                        });

    解决方案:使用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");            

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

  • 相关阅读:
    Linux系统格式化磁盘+挂载分区
    ELK日志处理
    memcached安装+绑定访问ip
    Redis安装+密码认证
    linux安全
    Mysql备份与恢复
    MySql binlog
    gitlab自动备份
    Rabbitmq安装与配置
    Hadoop实战-Flume之Source interceptor(十一)(2017-05-16 22:40)
  • 原文地址:https://www.cnblogs.com/foreverfendou/p/5264685.html
Copyright © 2020-2023  润新知