接口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVC.Interface
{
    public interface IBaseRepository<T>
    {
        #region  成员方法
        /// <summary>
        /// 增加一条数据
        /// </summary>
        bool Add(T model);
        /// <summary>
        /// 根据ID删除一条数据
        /// </summary>
        bool Delete(int Id);
        /// <summary>
        /// 根据条件删除数据
        /// </summary>
        /// <param name="strWhere"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        bool DeleteList(string strWhere, object parameters);
        /// <summary>
        /// 更新一条数据
        /// </summary>
        bool Update(T model);
        /// <summary>
        /// 根据ID获取实体对象
        /// </summary>
        T GetModel(int Id);
        / <summary>
        / 根据条件获取实体对象
        / </summary>
        //T GetModel(string strWhere, object parameters);
        /// <summary>
        /// 根据条件获取实体对象集合
        /// </summary>
        /// <param name="strWhere"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        IEnumerable<T> GetModelList(string strWhere, object parameters);
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="pageNum">页码</param>
        /// <param name="rowsNum">每页行数</param>
        /// <param name="strWhere">where条件</param>
        /// <param name="orderBy">Orde by排序</param>
        /// <param name="parameters">parameters参数</param>
        /// <returns></returns>
        IEnumerable<T> GetListPage(int pageNum, int rowsNum, string strWhere, string orderBy, object parameters);
        #endregion
    }

}

实现:

using Dapper;
using MVC.Common;
using MVC.Interface;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVC.BLL
{
    public class BaseRepository<T> : IBaseRepository<T>
    {
        private IDbConnection _connection;
        public bool Add(T model)
        {
            int? result;
             using (_connection= DbClient.OpenConnection())
            {
                    result= _connection.Insert(model);
                if (result > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

public bool Delete(int Id)
        {
            int? result;
            using (_connection = DbClient.OpenConnection())
            {
                result =_connection.Delete<T>(Id);
            }
            if (result > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

public bool DeleteList(string strWhere, object parameters)
        {
            int? result;
            using (_connection = DbClient.OpenConnection())
            {
                result =_connection.DeleteList<T>(strWhere,parameters);
            }
            if (result > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

public IEnumerable<T> GetListPage(int pageNum, int rowsNum, string strWhere, string orderBy, object parameters)
        {
            using (_connection = DbClient.OpenConnection())
            {
                return _connection.GetListPaged<T>(pageNum, rowsNum, strWhere, orderBy, parameters); ;
            }
        }

public T GetModel(int Id)
        {
            using (_connection = DbClient.OpenConnection())
            {
                return _connection.Get<T>(Id);
            }
        }

public IEnumerable<T> GetModelList(string strWhere, object parameters)
        {
            using (_connection = DbClient.OpenConnection())
            {
                return _connection.GetList<T>(strWhere, parameters);
            }
        }

public bool Update(T model)
        {
            int? result;
            using (_connection = DbClient.OpenConnection())
            {
                result =_connection.Update(model);
            }
            if (result > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}

C#ORM框架Dapper封装相关推荐

  1. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  2. bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍

    转自:https://blog.csdn.net/hanjun0612/article/details/52170204 Dapper简单介绍: Dapper is a single file you ...

  3. 轻量级ORM框架Dapper应用三:使用Dapper实现In操作

    IN 操作符允许我们在 WHERE 子句中规定多个值. 本篇文章中,还是使用和上篇文章中同样的实体类和数据库,Dapper使用in操作符的代码如下: 1 using System; 2 using S ...

  4. 轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集

    使用Dapper的QueryMultiple方法可以一次执行多条SQL语句,返回多个结果集,代码如下 1 using System; 2 using System.Collections.Generi ...

  5. 轻量级ORM框架Dapper应用二:使用Dapper实现CURD操作

    在上一篇文章中,讲解了如何安装Dapper,这篇文章中将会讲解如何使用Dapper使用CURD操作. 例子中使用到的实体类定义如下: 1 using System; 2 using System.Co ...

  6. android ORM框架LitePal 封装SQLite

    LitePal的基本用法 虽说LitePal宣称是近乎零配置,但也只是"近乎"而已,它还是需要进行一些简单配置才可以使用的,那么我们第一步就先快速学习一下LitePal的配置方法. ...

  7. PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)

    我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有 ...

  8. Net Core下多种ORM框架特性及性能对比

    在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...

  9. .NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...

    前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,FreeSql,SqlSugar ...

最新文章

  1. 英特尔AI医疗实战手册曝光:医生诊断提速10倍,推理时间减少85%
  2. Python--DBUtil
  3. 转载——CVE-2019-0807
  4. 接口自动化- 基于 Python
  5. Openstack平台搭建之第二天
  6. 使用VIsio绘制E-R图
  7. python下载百度文库文档_Python百度文库爬虫之txt文件
  8. 线性代数笔记2:基本子空间的正交性及性质
  9. 叶罗丽颜值测试软件齐娜多少分,精灵梦叶罗丽:美颜相机下灵公主16岁、齐娜7岁,他竟然拍的46岁...
  10. 禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming
  11. Contour Integral
  12. Windows双显示器扩展怎么设置上下扩展
  13. 40页PPT详解金融业智能反欺诈的应用
  14. 什么是云计算的?云计算的定义、特征、模型分别是什么?
  15. 页面收录和关键词选取
  16. PHP的_FILE_用法
  17. [bzoj5507] [洛谷P5305] [gzoi2019]旧词
  18. 使用convert命令将pdf转成图片时遇到的一个问题
  19. 阿里系纯滑块验证码破解思路
  20. 社区电商平台运营新模式 社交零售电商私域流量新玩法

热门文章

  1. 2.12黑马培训日记
  2. wrap(),wrapAll(),wrapInner()的区别
  3. SpringBoot 接口层统一加密解密
  4. OSX上pf的简单配置笔记
  5. My97DatePicker-WdatePicker日历日期插件详细示例
  6. 一个前端er写在2015年末的话
  7. 报错:cannot match operand(s)in the condition to the corresponding edges in the enclosing event control
  8. 【腾讯鲜为人知的重武器4】秘密武器“数据挖掘”
  9. flink的广播、累加、缓存
  10. 电商巨头的「隐秘」战场