.NET之Dapper框架运用

Dapper框架

1.项目引用Dapper的Nuget程序包;

2.配置链接类

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dapper
{
    public class DapperConn
    {
        public static IDbConnection GetConnection()
        {
            string connStr = ConfigurationManager.AppSettings["conn"];
            return new SqlConnection(connStr);
        }
    }
}

3.配置相应表的实体对象

目前是一个用户表和一个用户登录日志表为例:

用户表

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

namespace Dapper
{
    public class UserModel
    {
        public Int32 Id { get; set; }

        public String Key { get; set; }

        public String Value { get; set; }

    }
}

用户登录日志表

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

namespace Dapper
{
    public class UserLoginLog
    {
        public Int32 Id { get; set; }

        public Int32 UserId { get; set; }

        public DateTime CreateTime { get; set; }

    }
}

4.通过实体对数据库操作

(包含基本的:增删改查及事务提交操作)

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

namespace Dapper
{
    public class DB
    {

        public int Add(UserModel model)
        {
            using (var conn = DapperConn.GetConnection())
            {
                string sql = "Insert into User (Key,Value) Value (@Key,@Value)";
                return conn.Execute(sql, model);
            }
        }

        public int Update(UserModel model)
        {
            using (var conn = DapperConn.GetConnection())
            {
                string sql = "update User set [email protected],[email protected] where [email protected]";
                return conn.Execute(sql, model);
            }
        }
        public int Del(UserModel model)
        {
            using (var conn = DapperConn.GetConnection())
            {
                string sql = "Delete from User where [email protected]";
                return conn.Execute(sql, model);
            }
        }

        public UserModel GetModel()
        {
            using (var conn = DapperConn.GetConnection())
            {
                var sql = "Select Id,Key,Value from User";
                return conn.QueryFirstOrDefault<UserModel>(sql);
            }
        }

        public IEnumerable<UserModel> GetModels()
        {
            using (var conn = DapperConn.GetConnection())
            {
                var sql = "Select Id,Key,Value from User";
                return conn.Query<UserModel>(sql);
            }
        }

        public void ImplementAffair(UserModel userModel, UserLoginLog userLogModel)
        {
            using (var conn = DapperConn.GetConnection())
            {
                IDbTransaction tran = conn.BeginTransaction();
                try
                {
                    string query = "Update User set Key=‘测试‘ where [email protected]";//更新一条记录
                    conn.Execute(query, userModel, tran, null, null);

                    query = "insert into UserLoginLog (userId,CreateTime) value (@userId,@CreateTime)";//删除一条记录
                    conn.Execute(query, userLogModel, tran, null, null);

                    //提交
                    tran.Commit();
                }
                catch (Exception ex)
                {
                    //提交错误
                    //回滚事务
                    tran.Rollback();
                }
            }
        }
    }
}
时间: 2024-10-29 19:08:57

.NET之Dapper框架运用的相关文章

Dapper 框架

/// Dapper 框架应用例子            /// 1. NuGet安装 Dapper            /// 2. using 就可以使用下面例子            string sql = "SELECT SNAME,SUSER,SDATE,SFLAG,SNUM,CST1,CST2 FROM IIDB_SYN";            string connstring = ConfigurationManager.ConnectionStrings[&qu

关于抽象工厂模式,实用Dapper框架

原文地址:https://www.cnblogs.com/jiayuanji/p/11211681.html

web程序快速开发

关于web程序快速开发个人见解以及经历 由于在之前公司业务的发展,需要在基于核心业务的基础上开发其他较为独立的业务系统,所以就有了这个基于Dapper,DDD概念的基础框架,由于个人基于这个框架已经经历过两个系统的开发,也因为其他项目团队需要基于这个框架进行其他系统的一些开发,所以需要对此框架有一些简单介绍和使用说明. 1.主要框架主体介绍 Dapper,DapperExtensions:Dapper框架集成. Topever.AutoMapper:对象映射扩展,这个项目其实可以集成到公共项目T

关于web程序快速开发个人见解以及经历

由于在之前公司业务的发展,需要在基于核心业务的基础上开发其他较为独立的业务系统,所以就有了这个基于Dapper,DDD概念的基础框架,由于个人基于这个框架已经经历过两个系统的开发,也因为其他项目团队需要基于这个框架进行其他系统的一些开发,所以需要对此框架有一些简单介绍和使用说明. 1.主要框架主体介绍 Dapper,DapperExtensions:Dapper框架集成. Topever.AutoMapper:对象映射扩展,这个项目其实可以集成到公共项目Topevery.Infrastructu

(1)dotnet开源电商系统-brnshop&amp;brnMall 和老外开发的nopCommerce(dotnet两套电商来PK--第一篇)

一直想做电商软件,但是实在不想学PHP了,所以前后关注了这两个开源电商系统.一个是国人出品的,一个据说是俄罗斯人写得(不知道对不对).目前两个开源软件都在学习了解中,以下的博文可能会涉及到这两套系统,我希望能对比进行学习,能互相借鉴和补充. brnshop :http://www.cnblogs.com/wheretime/p/3793979.html  (入门篇:BrnShop开源网上商城第一讲:架构设计) nopCommerce:http://www.cnblogs.com/babieton

EF Core-2

带着问题去思考!大家好 上篇 概念性讲述CRQS(https://www.cnblogs.com/ccaa/p/12545582.html) 这篇我们主要讲在.NET CORE中的数据访问,数据访问我们常常会想到Entity Frameword Core.这是新面孔,是6.x的基础上专门设计的. 1:将其接来下的数据库访问类放到一个独立的类库中,独立起来. 2:获取连接字符串 public class MyOwnDatabase:DbContext { public MyOwnDatabase(

EntityFramework、Dapper vs 草根框架性能

EntityFramework.Dapper vs 草根框架性能 扯淡 当前市面上 ORM 很多,有跑车型的,如 Dapper,有中规中矩型的,如 Mybatis.Net,也有重量型的,如 EntityFramework 和 NHibernate,还有一些出自草根之手的,如 Chloe.ORM.各式各样,层出不穷.试问,为何要重复造轮子?很简单,咱来自火星,目前地球上还没一款轮子适合咱这辆火星车~ 为加深对各个 ORM 框架的了解,同时也想看看咱自己的框架性能如何,也可以让对 Chloe 感兴趣

Asp.net 面向接口可扩展框架之数据处理模块及EntityFramework扩展和Dapper扩展(含干货)

面向接口数据处理模块是什么意思呢?实际上很简单,就是使用面向接口的思想和方式来做数据处理. 还提到EntityFramework和Dapper,EntityFramework和Dapper是.net环境下推崇最高的两种ORM工具. 1.EntityFramework是微软出的根正苗红的.netd的ORM工具,直接在Vs工具和Mvc框架中集成了,默认生成的项目就是使用EntityFramework的;微软也一直都在维护更新升级,最新版本最新版本都在EF7了.也迁移到了最新的.net Core平台了

轻量型ORM框架Dapper的使用

在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我个人的见解,EF是相对来说比较重的ORM框架,它是讲究通用性的框架,而非单纯的实现某种需求的框架,不得不否认的说,EF的开发效率要比用单纯的ADO.NET写sql语句的效率高的不是一点半点,可能很多人会说EF的性能低等等,针对这种问题有时候是需要折中的来讲,从另一个方面来讲,你用了ADO.NET写s