Dapper是一个轻量级的ORM框架,它只是一个IDbConnection的扩展文件。所以我们需要手写很多SQL,但是写CRUD的代码总是很无趣的。所有就有了DapperExtensions。DapperExtensions对Dapper提供了更多的扩展,可以不用写SQL就实现CRUD操作跟简单的查询功能。话不多说还是直接上代码吧。

  class ConnectionFactory
{
public static IDbConnection CreateConnection<T>() where T:IDbConnection,new ()
{
IDbConnection connection = new T();
connection.ConnectionString = ConnectionConfig.ConnectionString;
connection.Open();
return connection;
} public static IDbConnection CreateSqlConnection()
{
return CreateConnection<SqlConnection>();
}
}
interface IRepository<T>
{
IEnumerable<T> GetList(); T Get(object id); bool Update(T t); T Insert(T apply); bool Delete(T t); IEnumerable<T> Find(Expression<Func<T, object>> expression, Operator op, object param);
}
class SqlRepository<T> : IRepository<T> where T : class, IEntity
{
public virtual IEnumerable<T> GetList()
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
return conn.GetList<T>();
} } public virtual T Get(object id)
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
return conn.Get<T>(id);
}
} public virtual bool Update(T t)
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
return conn.Update(t);
}
} public virtual T Insert(T apply)
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
conn.Insert(apply);
return apply;
}
} public virtual bool Delete(T t)
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
return conn.Delete(t);
}
} public virtual IEnumerable<T> Find(Expression<Func<T,object>> expression,Operator op,object param)
{
using (var conn = ConnectionFactory.CreateSqlConnection())
{
return conn.GetList<T>(Predicates.Field<T>(expression, op, param));
}
} }

恩,就是这么简单。

最新文章

  1. 大白话讲解Promise(三)搞懂jquery中的Promise
  2. T-SQL 语句的理解
  3. PHP发送电子邮件
  4. PHPExcel上传sae遇到: -1:fail to get xml content
  5. 读取excel文件内容代码
  6. spring实现文件上传(图片解析)
  7. java使用spark/spark-sql处理schema数据(spark1.6)
  8. Android studio导出配置
  9. linux系统开机流程详解
  10. [BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备
  11. [转] 跨域资源共享 CORS 详解
  12. yolov3源码darknet在vscode下调试
  13. chromium 使用 flash
  14. 小程序获取地址授权的修改 wx.openSetting需点击
  15. python-面向对象-11-异常
  16. Containerpilot 配置文件 之 Jobs
  17. Spring AOP源码分析(一)使用示例
  18. [BZOJ 4809] 相逢是问候
  19. VuePress从零开始搭建自己的博客
  20. Python3: Command not found(Mac OS)

热门文章

  1. DM 多路径存储
  2. 在 Azure 上使用 Docker运行 Mono
  3. 初识WEB:输入URL之后的故事
  4. SEO:让搜索引擎对你的网站更有亲和力(译)
  5. iOS开发系列--C语言之指针
  6. 用“MEAN”技术栈开发web应用(三)用mongodb搭建数据库
  7. 【Java并发编程实战】-----&ldquo;J.U.C&rdquo;:ReentrantLock之一简介
  8. Btree 索引
  9. JS实战 &#183; 表单验证
  10. Gyp语法规则参考 &amp; 工具的使用