zoukankan      html  css  js  c++  java
  • 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");

         于是,天下太平了。

     

            

  • 相关阅读:
    鼠标移开事件(onmouseout)
    IOS iPhone 屏幕尺寸 判断设备屏幕尺寸、分辨率
    iOS 程序图标Logo设置
    关闭iOS虚拟键盘的几种方法
    Xcode5.1离线下载安装及使用iOS5模拟器进行开发调试的方法
    按钮创建
    Mac 截图 快捷键
    UserDefaultes 数据存储使用
    NSUserDefaults 使用方法
    IOS中NSUserDefaults的用法(轻量级本地数据存储)
  • 原文地址:https://www.cnblogs.com/wonder223/p/9564478.html
Copyright © 2011-2022 走看看