Dapper的完整扩展(转)】的更多相关文章

真心想说:其实...我不想用Dapper,如果OrmLite.Net支持参数化的话,也就没Dapper的什么事情了,对于OrmLite.Net只能做后续跟踪...... 这个其实是看了Dapper作者的扩展后觉得不爽,然后自己按照他的设计思路重写了代码,只支持单个数据的增删改查,根据Expression来查的真心无能为力...... 另外作者似乎已经支持了属性.字段等与数据库中的映射..... 具体包含了 1.对字符串的扩展 2.对主键的定义,支持单或多主键,当单主键并且类型为数字时,认为该主键…
承接上一篇博文中的中间件基本都是写入性的操作,但对于查询操作实际上是比较鸡肋的,如果单纯的查询,没有分表的情况下基本还能适应,这里为了Dapper提供了扩展 Dapper的扩展查询是需要写表名称的,所以对于开发人员来说需要写表名称,同一个业务的查询就会出现问题,每个业务里面都需要去判断业务上的表名称,不利于开发维护,易出错的问题 所以扩展了 EasySharding.EFCore.DapperExtension 让开发人员不用过于关注表名称,只需要关注那些业务表有分表就行了 例如: #regio…
前言 去年我在业余时间,自己整了一套dapper的lambda表达式的封装,原本是作为了一个个人的娱乐项目,当时也只支持了Sql Server数据库.随之开源后,有不少朋友也对此做了试用,也对我这个项目提出了不少的建议.因此我在最近公司业务不怎么繁忙的情况下,对朋友们的建议和我的想法做了一个总结,然后花了一个星期的时间对项目进行了重构与升级,希望该项目能帮助到有需要的人. 如果您对它有兴趣,欢迎大家提交Pull Request代码变更,如果有任何问题可提交issue进行讨论.当然也可以在下方评论…
一对多映射关系 /// <summary> /// 一对多连接查询 /// </summary> /// <typeparam name="FirstT">主键表实体类型</typeparam> /// <typeparam name="SecondT">外键表实体类型</typeparam> /// <typeparam name="ReturnT">返回的实体…
前言 这是针对dapper的一个扩展,支持lambda表达式的写法,链式风格让开发者使用起来更加优雅.直观.现在暂时只有MsSql的扩展,也没有实现事务的写法,将会在后续的版本补充. 这是个人业余的开源小项目,如果大家有更好的实现方式和好的建议欢迎拍砖 本项目已经在github上开源了:Sikiro.DapperLambdaExtension.MsSql 去年写了<整理自己的.net工具库>,里面提供的源码重新发布到了github并用新的项目名Sikiro.Tookits 这两个项目都发布到N…
[转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceManager解析二进制资源文件 小看RESX资源文件的Designer.cs文件 返回目录 程序集清单资源 在程序集中嵌入资源的最简单方法是什么?那就是使用Visual Studio中的“嵌入式资源(Embedded Resource)”创建选项,相当于使用csc的”/resource”参数.具体步…
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://liningit.github.io/LnskyDB/ 开源地址: https://github.com/liningit/LnskyDB nuget地址: https://www.nuget.org/packages/LnskyDB/ 在此非常感谢SkyChenSky其中lambda表达式的解析参考了他的开源…
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://liningit.github.io/LnskyDB/ 开源地址: https://github.com/liningit/LnskyDB nuget地址: https://www.nuget.org/packages/LnskyDB/ 前面我们介绍了LnskyDB的增删改查操作,接下来我们结束几个基础类.仓储…
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://liningit.github.io/LnskyDB/ 开源地址: https://github.com/liningit/LnskyDB nuget地址: https://www.nuget.org/packages/LnskyDB/ 功能特点 Lambda表达式查询方便 基于Dapper的Lambda表达式…
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.,现在已经支持MySql和Sql server数据库了 文档地址: https://liningit.github.io/LnskyDB/ 开源地址: https://github.com/liningit/LnskyDB nuget地址: https://www.nuget.org/packages/LnskyDB/ https://ww…
框架采用.NetCore + Vue前后端分离,并且支持前端.后台代码业务动态扩展,框架内置了一套有着20多种属性配置的代码生成器,可灵活配置生成的代码,代码生成器界面配置完成即可生成单表(主表)的增.删.改.查.导入.导出.上传.审核基础功能.只需要简单了解即可上手开发 框架基础功能已构建完成,可直接上手开发功能 Vol.WebApi类库可独立用于restful api服务单独部署,用于其他系统单独提供接口,直接上手编写业务代码即可. Vue+Vol.WebApi 可用于现有框架前后端分离进行…
0. 前言 在前一篇中我们讲到了Dapper的应用,但是给我们的感觉Dapper不像个ORM更像一个IDbConnection的扩展.是的,没错.在实际开发中我们经常用Dapper作为对EF Core的补充.当然了Dapper并不仅仅只有这些,就让我们通过这一篇文章去让Dapper更像一个ORM吧. 1. Dapper Contrib Dapper Contrib 扩展了Dapper对于实体类的CRUD方法: 安装方法: 命令行: dotnet add package Dapper.Contri…
https://github.com/StackExchange/dapper-dot-net Dapper是对IDbConnection的扩展,需要使用Dapper提供的扩展只需要把SqlMapper这个文件放到自己的项目中即可.这样项目中的IDbConnection就可以直接使用Dapper中的扩展方法,这是怎么实现的呢?百度才知道这个是C#提供的扩展方法. 扩展方法如何使用呢?直接看代码. 对Object写一个自定义的ToString()方法,输出"自定义Object的ToString()…
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成. 不过,各种ORM总有让人吐槽的地方... 比如,我之前在SqlServer上写测试,搞封装,没有任何问题.CURD.批量操作.存储过程.事物等. 可是以转到Oracle上,就出问题了[喂~不是说好的支持Oracle的么] 在写Dapper+Oracle单元测试的前期,是没有…
目录 1.Dapper 简介 2.Dapper 安装 3.Dapper 使用 Dapper简介 Dapper是一个轻量级的ORM框架,短小精悍,正如其名.对于小项目,使用EF,NHibernate这样的重量级ORM框架,有点杀鸡用牛刀的感觉,此时Dapper会是个很不错的选择. Dapper优势 轻量,Dapper.dll大小不到105KB. 快,读取数据接近IDataReader. 支持大部分主流的数据库,如:MS SQL,Oracle,MySQL,Sqlite等等. 支持映射一对一,一对多,…
为了方便Dapper操作可以使用Dapper的相关扩展dapper simplecrud. 1.首先点击管理NuGet…
以下文章摘录来自InfoQ,是一篇不错的软问,大家细细的品味 关键要点: Dapper这类微ORM(Micro-ORM)虽然提供了最好的性能,但也需要去做最多的工作. 在无需复杂对象图时,Chain这类Fluent ORM更易于使用. 对实体框架(Entity Framework)做大量的工作后,其性能可显著提高. 为获得数据库的最大性能,需要采用可能会有些繁琐的投影(Projection)操作. ORM整体上的局部更新可能会存在问题. 在现代企业开发中,可采用多种方法构建数据存取层(data…
年少时,为何不为自己的梦想去拼搏一次呢?纵使头破血流,也不悔有那年少轻狂.感慨很多,最近事情也很多,博客也很少更新了,毕竟每个人都需要为自己的生活去努力. 最近在一个群里遇到一个人说的话,在这里不再赘述,大概意思就是自己各种精通各种懂,面试时各种装逼各种吊,本人真诚的求教了一下他,问他是否懂这些东西的底层原理,是否了解过底层源码,能否根据实际情况修改源码,谁知被他吐槽说装逼,说知识那么多不能什么都看源码和理解原理吧.但是我只想说,这可是你自己说自己精通,难道精通的框架不该了解源码和原理吗?难道精…
dapper封装的扩展方法中,没有直接返回datatable的方法,项目中有些时候需要用到这样的返回格式,而为了项目数据框架的统一性, 不好直接用其他框架,如果直接将查询出来的泛型集合转datatable又会很繁琐,这里就是用dapper的ExecuteReader()方法,将返回的转换成datatable public Datatable table() { DataTable table = new DataTable("MyTable"); var reader = conn.E…
前言: 对象关系映射(ORM)已经被使用了很长时间,以解决在编程过程中对象模型与数据模型在关系数据库中不匹配的问题. Dapper是由Stack OverFlow团队开发的开源的,轻量级的ORM.相比于其他的ORM框架,Dapper速度非常快. Dapper的设计考虑到了性能以及易用性.它支持使用事务,存储过程或数据批量插入的静态和动态对象绑定. 下载和安装Dapper: 要开始使用Dapper,请遵循以下步骤: 1.打开Visual Studio 2.点击文件(File)->新建(New)->…
关于Dapper.NET的相关论述   年少时,为何不为自己的梦想去拼搏一次呢?纵使头破血流,也不悔有那年少轻狂.感慨很多,最近事情也很多,博客也很少更新了,毕竟每个人都需要为自己的生活去努力. 最近在一个群里遇到一个人说的话,在这里不再赘述,大概意思就是自己各种精通各种懂,面试时各种装逼各种吊,本人真诚的求教了一下他,问他是否懂这些东西的底层原理,是否了解过底层源码,能否根据实际情况修改源码,谁知被他吐槽说装逼,说知识那么多不能什么都看源码和理解原理吧.但是我只想说,这可是你自己说自己精通,难…
不依靠其他工具,直接使用Python的扩展API来编写一些简单的C扩展模块. 本篇参考PythonCookbook第15节和Python核心编程完成,值得注意的是,Python2.X和Python3.X在扩展库写法上略有不同,我们研究的是3.X写法. 一.源文件 Extest2.c C函数本体 c文件头必须包含"Python.h"头,以调用接口函数 这里面写了两个c函数,模块名称定为Extest #include "Python.h" #include <st…
看了<Dapper从入门到精通>后的总结 (1)Dapper 是直接扩展 IDBConnection,而且是单独一个文件,可以直接嵌入到项目中使用. (2)通过手写sql语句,调用execute方法添加数据,返回的是影响的行数:通过实体,调用insert方法添加数据,返回的是主键值. (3)在IDBconnection中使用事务,主要注意在执行 Insert 方法时传入Transaction,用try...catch捕获异常,并在catch块调用Rollback(否则的话会出现部分提交的情况)…
在asp.net core开发中.按照国际案例开始.都是先在Nuget安装XXX包.比如我们今天要用到的Dapper nuget里面安装Dapper 1.然后新建一个类文件DapperExtensions.cs 因为Dapper是IDbConnection扩展出来的,所以我们必须给IDbConnection一个默认的实现 /// <summary> /// 注入服务 /// </summary> /// <typeparam name="T"><…
在自己研究ORM之前,也使用过几个成熟的ORM方案,例如:EntityFramework,PetaPoco,Dapper 等,用是很好用,但是对自己来说总是不那么方便,EF比较笨重,Dapper要自定义扩展等等,所以萌发了开发适合自己的ORM的想法,因为未起名字,所以下文所有地方都使用MyORM来代替. Nuget地址: https://www.nuget.org/packages/Dai.CommonLib.Sql 简介: MyORM是一个小型的ORM,稍微参考了PetaPoco,支持简单的对…
最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行Asp.net MVC开发应该提前掌握多少程度的知识点才能畅通无阻进行开发? 下面是这次开发结束后做的一些知识点梳理总结,掌握如下知识点开发大型Asp.net MVC项目将不会有太大问题. 知识点总纲 代码规范 前段View 后端 1. 代码规范 好的规范可以让团队更加有效率! C#代码规范 使用St…
快到年终了, 最近项目比较悠闲, 就想总结下, 项目中所使用到的一些技术, 以及使用方法. 之前有写过Dapper以及Dapper的一个扩展, 这些也是项目中使用过的. 算是一个温故而知新吧. 代码: public interface IAnimal { void Say(); } public class Dog : IAnimal { public string Name { get; set; } public void Say() { Console.WriteLine("汪汪汪!&qu…
1. 写在前面的话 一直没有写博客的习惯,感觉太浪费时间,没有那么多精力,其实仔细一想,写博客是一种习惯,也是一种心境,同时也是对自己所掌握的知识结构的一个梳理过程,对自己知识体系的一个巩固,同时也是对自己所掌握的技能融会贯通灵活运用的体现,所以接下来打算利用一些业余时间写写博客,博客中某些观点和见解纯属个人经验和见解,可能不对,或者不够准确,还请大家多多指导,如果您能指出我不对的地方我一定非常感谢您,我会不断改进.不断向您请教学习. 2. 切入正题 EF全称Entity Framework,大…
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 它不会经常提起,除非你的数据库运行在简单(SIMPLE)恢复模式,在事务日志上定期备份非常重要的.这会控制事务日志大小,并且保证,在灾难发生里,你可以恢复你的数据库到灾难发生前的某个时间点.这些日志备份要和定期的完整数据库(数据文件)备份一起. 如果你在测试数据…
前言 搜索功能是一个很常用的功能,当然这个搜索不是指全文检索,是指网站的后台管理系统或ERP系统列表的搜索功能.常见做法一般就是在搜索栏上加上几个常用字段来搜索.代码可能一般这样实现 StringBuilder sqlStr = new StringBuilder();if (!string.IsNullOrEmpty(RealName)){    sqlStr.Append(" and RealName  = @RealName");}if (Age != -1){    sqlSt…