Dapper填坑记

1)为什么是Dapper

   EF学习成本太高了,研究了很久,还是没有搞懂它的更新类之后如何更新到数据库中。

        Linq to sql这个用起来还不错,问题是有点担心如果连接Mysql就死翘翘了。

        正好看到这边文章<<5年后,我们为什么要从Entity Framework转到Dapper工具>>,觉得可以尝试一下。

         基本操作教程看这儿<<Dapper学习笔记>>,这个博主只有这一个题材。

2)不支持版本

        我们现在使用Framework 4比较多,在VS2015下面直接使用NuGet安装Dapper,竟然报告Framework版本太低,不支持.....

        找啊找,找到网上说到直接使用Dapper.cs文件即可,我相信了,使用了一个6200行左右的Dapper.cs文件就OK了。

3)无法ToList

       很简单的一句查询全表内容如下,结果在ToList()的时候报错。

        string query = "SELECT * FROM TestType";

        List<TestType> types= conn.Query<TestType>(query).ToList();

        仔细在网上找,也没人提到这个问题。

        后来突然想到是不是什么没有引用到,加了下面的代码,就解决了.

        using System.Linq;           

4)存储过程返回值的问题

       存储过程的功能是很简单的插入需求:如果当前用户没有权限,返回-1,如果关键字重复,就返回-2,如果关键字不存在,那么插入一条,并返回递增ID。

       开始的时候,准备用“select -1”,但是 int count =conn.Execute("Proc_1”,...) 每次返回都是"-1"。直接执行存储过程返回-2,但是count还是-1。

       后来看到别人的例子,才知道有2种解决方式,一种就是直接用 conn.Query<Int>("Proc_1”,...)  来得到返回的列表。

       另外一种,就不用select -1 而采用 return -1,取值的时候使用加参数的方法来实现:

       param.Add("@res", 0, DbType.Int32, ParameterDirection.ReturnValue);    

      conn.Execute("Proc_1”,...)

      int count = param.Get<int>("@res");

     于是,天下太平了。

 

        

转载于:https://www.cnblogs.com/wonder223/p/9564478.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值