精华内容
下载资源
问答
  • Dapper 框架

    2019-10-02 16:30:05
    /// Dapper 框架应用例子 /// 1. NuGet安装 Dapper /// 2. using 就可以使用下面例子 string sql = "SELECT SNAME,SUSER,SDATE,SFLAG,SNUM,CST1,CST2 FROM IIDB_SYN"; str...

     

     

     

    /// Dapper 框架应用例子
                /// 1. NuGet安装 Dapper
                /// 2. using 就可以使用下面例子
                string sql = "SELECT SNAME,SUSER,SDATE,SFLAG,SNUM,CST1,CST2 FROM IIDB_SYN";
                string connstring = ConfigurationManager.ConnectionStrings["Model2conn"].ConnectionString;
                using (IDbConnection db = new SqlConnection(connstring))
                {
                    var idt = db.Query<Mode.IIDB_SYN>(sql);
                    DataTable dt = ToDataTable(idt);
                }

    转载于:https://www.cnblogs.com/chirs888888/p/11608117.html

    展开全文
  • .NET之Dapper框架运用

    2017-08-19 12:37:00
    Dapper框架 1.项目引用Dapper的Nuget程序包; 2.配置链接类 using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using ...

    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 Add1(UserModel model)
            {
                using (var conn = DapperConn.GetConnection())
                {
                    DynamicParameters dp = new DynamicParameters();
                    dp.Add("@Key", model.Key);
                    dp.Add("@Value", model.Value);
                    return conn.Execute("User", dp, null, null, CommandType.TableDirect);
                }
            }
    
            public int Update(UserModel model)
            {
                using (var conn = DapperConn.GetConnection())
                {
                    string sql = "update User set Key=@Key,Value=@Value where Id=@Id";
                    return conn.Execute(sql, model);
                }
            }
            public int Del(UserModel model)
            {
                using (var conn = DapperConn.GetConnection())
                {
                    string sql = "Delete from User where Id=@Id";
                    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 ID=@ID";//更新一条记录
                        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();
                    }
                }
            }
    
            /// <summary>
            /// 执行无参数存储过程 返回列表
            /// </summary>
            /// <returns></returns>
            private IEnumerable<UserModel> ExecuteStoredProcedureNoParms()
            {
                using (IDbConnection con = DapperConn.GetConnection())
                {
                    var userList = new List<UserModel>();
                    userList = con.Query<UserModel>("QueryRoleNoParms",
                                            null,
                                            null,
                                            true,
                                            null,
                                            CommandType.StoredProcedure).ToList();
                    return userList;
                }
            }
    
            /// <summary>
            /// 执行无参数存储过程 返回int
            /// </summary>
            /// <returns></returns>
            private int ExecutePROC()
            {
                using (IDbConnection con = DapperConn.GetConnection())
                {
                   return con.Execute("QueryRoleWithParms", null, null, null, CommandType.StoredProcedure);
                }
            }
    
            /// <summary>
            /// 执行带参数的存储过程
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            private string ExecutePROC(UserModel model)
            {
                DynamicParameters dp = new DynamicParameters();
                dp.Add("@ID", "1");
                dp.Add("@msg", "", DbType.String, ParameterDirection.Output);
                using (IDbConnection con = DapperConn.GetConnection())
                {
                    con.Execute("Proc", dp, null, null, CommandType.StoredProcedure);
                    string roleName = dp.Get<string>("@msg");
                    return roleName;
                }
            }
        }
    }

     

    转载于:https://www.cnblogs.com/wangbin0582/p/7396172.html

    展开全文
  • Dapper - a simple object mapper for .Net Release Notes Located at dapperlib.github.io/Dapper Packages MyGet Pre-release feed: https://www.myget.org/gallery/dapper Package NuGet Stable NuGet Pre-...
  • Dapper - a simple object mapper for .Net Release Notes Located at dapperlib.github.io/Dapper Packages MyGet Pre-release feed: https://www.myget.org/gallery/dapper Package NuGet Stable NuGet Pre-...
  • Dapper框架搭建三层

    2018-11-22 17:33:29
    Dapper是个轻量级orm,但是太轻量了,所有执行SQL语句都需要自己写,扩展也需要自己写,供大家学习。
  • AA.Dapper如何使用AA.Dapper基于dapper进一步封装而成的orm框架,提供增删改查、分页、事务、原生sql的功能,以满足日常的业务开发。1.Repository层:DapperRepository类包含大部分数据库操作如图:DapperContext....

    AA.Dapper如何使用

    AA.Dapper基于dapper进一步封装而成的orm框架,提供增删改查、分页、事务、原生sql的功能,以满足日常的业务开发。

    1.Repository层:

    DapperRepository类包含大部分数据库操作如图: 

    90866699682635a916c6cae7b63ebcb4.png

    DapperContext.Current.DataBase类支持原生sql,Execute(执行非查询命令对象的sql并返回受影响的行数)、ExecuteScalar(返回select结果集中的第一行第一列)、Query(执行查询sql,并返回结果) 

    cc0f2a3a6882044bffb38ff5ad19fe80.png

    定义仓储类并且继承DapperRepository,如以下代码 

    public class UserRoleRepository:DapperRepository<UserRole>, IUserRoleRepository { }

    如果有需要原生sql的需求,在IUserRepository接口中添加定义

    int GetUserCount();

    UserRepository中实现

    public class UserRepository : DapperRepository, IUserRepository  

        {  

            public int GetUserCount()  

            {  

                return DapperContext.Current.DataBase.ExecuteScalar<int>

    ("select count(*) from Sys_UserInfo");  

            }  

    }  

    2.ApplicationServce

    (1)新增

    _userRepository.Insert(entityUser);  

    (2)修改

    var entity = _userRepository.Get(input.SysNo);  

    entity.Status = 320;  

    _userRepository.Update(entity);  

    (3)删除

     var entity = _userRepository.Get(input.SysNo);  

    _userRepository.Delete(entity);  

    (4)查询

    //通过主键获取单个实体  

    _userRepository.Get(input.SysNo);  

    //通过Expression条件获取  

    _userRepository.Select(x => x.SysNo == input.SysNo);  

    //分页  

    var result = _userRepository.From(sql =>  

                {  

                    sql.Select()  

                       .Where(x=>x.UserName==input.UserName)  

                       .Page(input.PageIndex, input.PageSize);  

                });  

    (5)事务

    using (var dbTransaction = dapperContext.BeginTransaction())  

     {  

         try  

         {  

             var user = new UserInfo()  

             {  

                 UserName = "chengTian",  

                 RealName = "成天",  

                 GmtCreate = DateTime.Now,  

                 GmtModified = DateTime.Now,  

                 LastLoginDate = DateTime.Now  

             };  

             userInfoRepository.Insert(user);  

             userAlbumRepository.Insert(new UserAlbum  

             {  

                 Pic = "image/one.jgp"  

             });  

             dapperContext.Commit();  

         }  

         catch (Exception ex)  

         {  

             dbTransaction.Rollback();  

         }  

     }  

    (6)动态Expression

    删除、查询条件需要根据传入的参数判断使用DynamicWhereExpression动态构造Expression 如一下代码

    var where = DynamicWhereExpression.Init();  

    if (input.RealName != "")  

    {  

       where = where.And(x => x.RealName.Contains(input.RealName));  

    }  

    if (input.SysNo!=Guid.Empty)   

    {  

        where = where.And(x=>x.SysNo==input.SysNo);  

    }  

    if (input.SysNos.Any())   

    {  

        where = where.And(x=>input.SysNos.Contains(x.SysNo));  

    }  

    var result = _userRepository.From(sql =>  

    {  

        sql.Select()  

           .Where(where)  

           .Page(input.PageIndex, input.PageSize);  

    });  

    https://github.com/ChengLab/AAFrameWork

    源码地址

    用起来还是很顺手的,目前比较成熟也很多,不过AA.Dapper不是全新的轮子,只是进一步的封装,有了Ef的便捷性。你可以hold住的orm,代码可以任意扩展,只要你熟悉dapper。喜欢.NetCore的童鞋们,可以加微信群,加微信(备注加群):qinzhong45。

    展开全文
  • dapper框架简单的使用

    2020-04-14 16:15:58
    1.NuGet 1.1介绍 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得...2 Dapper 一个orm框架 2...

    1.NuGet

    1.1介绍

    Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便

    1.2 使用

    virtual studio中项目右键引用,管理NuGet程序包,搜索dapper安装

    2 Dapper 一个orm框架

    2.1 介绍

    A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc…

    2.2 使用

    导入dapper Imports Dapper 从sqlconnection对象中即可调用一些方法,例如 Query() Execute()
    不用拼接字符串,但是传参条件必须为对象,可以是匿名对象。CRUD代码如下:

    Function InsertIntoStu(ByRef con) As Integer
        Dim insertSql = "insert into students (name,chinese,math,english) values (@name,@chinese,@math,@english)"
        Dim stu = New Student("hyl", "100", "100", "100")
        Dim row = con.Execute(insertSql, stu)
        Console.WriteLine(row)
        con.Close()
        Return row
    End Function
    
    Function QueryOne(ByRef con) As Object
        Dim sql = "select * from students where name=@name"
        Dim q = New With {.name = "111"} '查询条件
        Dim res = con.QueryFirst(Of Student)(sql, q) '传递的参数必须为一个对象,匿名对象也可
        Console.WriteLine(res.ToString())
        Return res
    End Function
    Function DeleteStu(ByRef con) As Integer
        Dim delsql = "delete from students where id=@id"
        Dim q = New With {.id = 4}
        Dim row = con.Execute(delsql, q)
        Console.WriteLine(row)
        Return row
    End Function
    

    类定义如下:

    Public Class Student
    Private Property _id As Integer
    Private Property _name As String
    Private Property _chinese As Double
    Private Property _math As Double
    Private Property _english As Double
    
    Public Property id As Integer
        Get
            Return _id
        End Get
        Set(value As Integer)
            _id = value
        End Set
    End Property
    
    Public Property name As String
        Get
            Return _name
        End Get
        Set(value As String)
            _name = value
        End Set
    End Property
    Public Property chinese As Double
        Get
            Return _chinese
        End Get
        Set(value As Double)
            _chinese = value
        End Set
    End Property
    Public Property math As Double
        Get
            Return _math
        End Get
        Set(value As Double)
            _math = value
        End Set
    End Property
    Public Property english As Double
        Get
            Return _english
        End Get
        Set(value As Double)
            _english = value
        End Set
    End Property
    Sub New(ByRef name, ByRef chinese, ByRef math, ByRef english)
        Me.name = name
        Me.chinese = chinese
        Me.math = math
        Me.english = english
    End Sub
    Sub New(ByRef id, ByRef name, ByRef chinese, ByRef math, ByRef english)
        Me.id = id
        Me.name = name
        Me.chinese = chinese
        Me.math = math
        Me.english = english
    End Sub
    Sub New()
    End Sub
    End Class
    
    展开全文
  • Dapper是个轻量级orm,但是太轻量了,所有执行SQL语句都需要自己写,扩展也需要自己写,供大家学习,里面包含了新增,修改,删除,分页具体使用,都在Web下Home控制器里
  • 通过包管理安装Dapper 无法安装,错误如下 原因:因为vs2013通过包管理期搜索出的Dapper 版本是高版本的Dapper,所以才会造成不兼容的问题。 解决方法通通过包控制台 输入命令: Install-package dapper -...
  • AA的开源地址https://github.com/ChengLab/AAFrameWorkAA框架是一个基础应用框架,是建立在众多大家熟知的流行工具之上并与之集成。比如:ASP.NET Core、Automapper、DapperDapper-FluentMap、RabbitMQ、Redis、...
  • 支持.NET CORE 和 MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、人大金仓 数据库,具有EF NH的功能,比EF更人性化的语法,支持真实的批量操作,另外还有媲美DAPPER的性能一款简单易用的开源ORM框架很多...
  • 一、前言感觉很久没写文章了,最近也比较忙,写的相对比较少,抽空分享基于Dapper 的分库分表开源框架core-data的强大功能,更好的提高开发过程中的效率; 在数据库的数据日积月累的积累下,业务数据库中的单表数据...
  • 公司内部有个叫 dapper 组件,但没有 opentracing sdk。框架自己提供了一个,但这一部分不适合开源。 好在是适配了 opentracing,大家可以很方便的集成 jaeger 等组件。 基础组件 主要的基础组件有三个,分别是 ...
  • 1.1.Dapper调用存储过程 存储过程是一组预编译的SQL语句。 使用存储过程有以下优点: 1.允许模块化程序设计,就是说只需要创建一次,在以后的程序中就可以调用该过程任意次。 2.允许更快地执行,如果某操作需要大量...
  • Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具:HTTP框架: Blademaster(bm)基于gin二次开发,具有快速、灵活的特点,可以方便的开发中间件处理通用或特殊逻辑,基础库默认实现了log&...
  • Dappe轻量级ORM框架学习 dapper介绍 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的,可以实现数据到对象的ORM操作,体积小速度快(性能不错),使用ORM的...
  • cnblogs.com/-clouds/p/11633786.html框架采用.NET Core + Vue前后端分离,并且支持前端、后台代码业务动态扩展,框架内置了一套有着20多种属性配置的代码生成器,可灵活配置生成的代码,代码生成器界面配置完成即可...
  • cnblogs.com/-clouds/p/11633786.html框架采用.NET Core + Vue前后端分离,并且支持前端、后台代码业务动态扩展,框架内置了一套有着20多种属性配置的代码生成器,可灵活配置生成的代码,代码生成器界面配置完成即可...
  • 转载于:https://www.cnblogs.com/jiayuanji/p/11211681.html
  • “C#高性能ORM框架?...只是用过之后我发现ef core和dapper并没有我期待的那么好用,比如ef core性能并不太好,而dapper的易用性,也还差那么一点……就没有一个兼备性能与易用性的C#的ORM框架了吗?经过多番查找...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 836
精华内容 334
关键字:

dapper框架