[Table("Users")]//真实表名
publicclass User
{
[Key]
publicint UserId { get; set; }
[Column("strFirstName"] //真实列名
publicstring FirstName { get; set; }//列别名
publicstring LastName { get; set; }
publicint Age { get; set; }
} var user = connection.Get<User>();

改动后该查询相当于sql

Select UserId, strFirstName as FirstName, LastName, Age from[Users]where UserId =@UserID

  2.GetList方法

publicstatic IEnumerable<T> GetList<T>(this IDbConnection connection)

  

publicclass User
{
publicint Id { get; set; }
publicstring Name { get; set; }
publicint Age { get; set; }
}

查询全部

var user = connection.GetList<User>();  

相当于Sql

Select*from[User]

使用条件实体查询

publicclass User
{
publicint Id { get; set; }
publicstring Name { get; set; }
publicint Age { get; set; }
} var user = connection.GetList<User>(new { Age = 10 });

  

Select*from[User]where Age =@Age

  

//使用字符串条件查询
publicclass User
{
publicint Id { get; set; }
publicstring Name { get; set; }
publicint Age { get; set; }
} var user = connection.GetList<User>("where age = 10 or Name like '%Smith%'");

  

//相当于SQL
Select*from[User]where age =10or Name like'%Smith%'

  

//分页查询:
publicstatic IEnumerable<T> GetListPaged<T>(this IDbConnection connection, int pageNumber, int rowsPerPage, string conditions, stringorderby) publicclass User
{
publicint Id { get; set; }
publicstring Name { get; set; }
publicint Age { get; set; }
} var user = connection.GetListPaged<User>(1,10,"where age = 10 or Name like '%Smith%'","Name desc");

  

//相当于SQl:
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY Name desc) AS PagedNumber, Id, Name, Age FROM [User] where age = 10 or Name like '%Smith%') AS u WHERE PagedNUMBER BETWEEN ((1 - 1) * 10 + 1) AND (1 * 10)

  

//插入方法
publicstaticint Insert(this IDbConnection connection, object entityToInsert) [Table("Users")]
publicclass User
{
[Key]
publicint UserId { get; set; }
publicstring FirstName { get; set; }
publicstring LastName { get; set; }
publicint Age { get; set; } //Additional properties not in database [Editable(false)]
publicstring FullName { get { returnstring.Format("{0} {1}", FirstName, LastName); } }
public List<User> Friends { get; set; }
[ReadOnly(true)]
public DateTime CreatedDate { get; set; }
} var newId = connection.Insert(new User { FirstName = "User", LastName = "Person", Age = 10 });
//相当于SQL
Insertinto[Users] (FirstName, LastName, Age) VALUES (@FirstName, @LastName, @Age)

  

//更新方法
[Table("Users")]public class User{
[Key]publicint UserId { get; set; }
[Column("strFirstName")]public string FirstName { get; set; }
public string LastName { get; set; }
publicint Age { get; set; } //Additional properties notindatabase[Editable(false)]public string FullName { get { return string.Format("{0} {1}", FirstName, LastName); } }
public List<User> Friends { get; set; }
}
connection.Update(entity);
//相当于SQL
Update[Users]Set (strFirstName=@FirstName, LastName=@LastName, Age=@Age) Where ID =@ID

  删除方法:

public static intDelete<T>(this IDbConnection connection, int Id)

public class User{
publicint Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
publicint Age { get; set; }
}
connection.Delete<User>(newid); 或 public static intDelete<T>(this IDbConnection connection, T entityToDelete) public class User{
publicint Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
publicint Age { get; set; }
} connection.Delete(entity);
相当于SQl
DeleteFrom[User]Where ID =@ID
删除多条
1.根据实体删除
public static int DeleteList<T>(this IDbConnection connection, object whereConditions, IDbTransaction transaction=null, int? commandTimeout =null) connection.DeleteList<User>(new { Age =10 }); 2.根据条件删除
public static int RecordCount<T>(this IDbConnection connection, string conditions = "") connection.DeleteList<User>("Where age >20");

  统计

public static int RecordCount<T>(this IDbConnection connection, string conditions = "")

varcount= connection.RecordCount<User>("Where age >20");

  

dapper.simplecurd的更多相关文章

  1. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  2. Dapper扩展之~~~Dapper.Contrib

    平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型 ...

  3. 由Dapper QueryMultiple 返回数据的问题得出==》Dapper QueryMultiple并不会帮我们识别多个返回值的顺序

    异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 今天帮群友整理Dapper基础教程的时候手脚快了点,然后遇到了一个小问题,Dapp ...

  4. Dapper.Contrib:GetAsync<T> only supports an entity with a [Key] or an [ExplicitKey] property

    异常处理:http://www.cnblogs.com/dunitian/p/4523006.html#dapper 原来Model是这样滴 修改后是这样滴 注意点:Model里面的Table和Key ...

  5. Dapper where Id in的解决方案

    简单记一下,一会出去有点事情~ 我们一般写sql都是==>update NoteInfo set NDataStatus=@NDataStatus where NId in (@NIds) Da ...

  6. ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)

    操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...

  7. Asp.Net Core + Dapper + Repository 模式 + TDD 学习笔记

    0x00 前言 之前一直使用的是 EF ,做了一个简单的小项目后发现 EF 的表现并不是很好,就比如联表查询,因为现在的 EF Core 也没有啥好用的分析工具,所以也不知道该怎么写 Linq 生成出 ...

  8. 搭建一套自己实用的.net架构(3)续 【ORM Dapper+DapperExtensions+Lambda】

    前言 继之前发的帖子[ORM-Dapper+DapperExtensions],对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持. 由于之前缺乏对Lambda的知 ...

  9. mono for android中使用dapper或petapoco对sqlite进行数据操作

    在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...

随机推荐

  1. TYVJ P1039 【忠诚2】

    题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...

  2. qtpy.PythonQtError: No Qt bindings could be found

     vnpy框架下No Qt bindings could be found  在 pycharm 里面出现  qtpy.PythonQtError: No Qt bindings could be f ...

  3. 20175317 《Java程序设计》第六周学习总结

    20175317 <Java程序设计>第六周学习总结 教材学习内容总结 第六周我学习了教材第七章与第十章的内容,了解了内部类.异常类与输入输出流的知识,学到了以下内容: 什么是内部类 如何 ...

  4. 20190412wdVBA 排版

    Sub LayoutForExamPaper() Dim StartTime As Variant Dim UsedTime As Variant StartTime = VBA.Timer Appl ...

  5. koa源码之delegate使用

    koa中context可以直接调用request和response属性的重要原因是使用了delegate将req和res的属性代理到context, Delegator.prototype.gette ...

  6. spring cloud(四)熔断器Hystrix

    熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者”的不可用导致“服务 ...

  7. Vue2.0使用vue-cli脚手架搭建

    一:安装node.js Node.js官网:https://nodejs.org/en/download/ 选择相应的版本即可安装 通过node自带的npm包管理工具 二.安装依赖 安装依赖:npm ...

  8. WORDPRESS博客完美更换网站空间服务器的方法

    更换主机空间的步骤:原主机的所有数据移动至新主机上→修改wp-config.php数据库连接信息 (1)备份原主机全站文件 使用FTP备份网站根目录下所有文件并上传到新主机,向主机客服询问FTP地址. ...

  9. 从零开始学Python 三(网络爬虫)

    本章由网络爬虫的编写来学习python.首先写几行代码抓取百度首页,提提精神,代码如下: import urllib.request file=urllib.request.urlopen(" ...

  10. PHP语言学习之php-fpm 三种运行模式

    本文主要向大家介绍了PHP语言学习之php-fpm 三种运行模式,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. php-fpm配置 配置文件:php-fpm.conf 开启慢日志功能的 ...