dapper

代码傻傻写不完,看看多项目框架是不是你的菜

时光总嘲笑我的痴心妄想 提交于 2020-08-08 05:18:45
代码傻傻写不完,看看多项目框架是不是你的菜 随着互联网的不断加深,企业信息化的发展日趋复杂化,很多企业对信息系统的性能、可用性、可靠性和安全性都有非常高的要求,因此,要进行规范的企业信息系统的建设,一套成熟的开发模式显得至关重要。 但是,成熟的开发模式需要企业长时间的积累,对其技术平的要求也很高,一套优秀的信息化项目,需要不少的资深技术人员以及较长的项目周期来支撑,同时对于不同的项目来说,代码的复用性在很多情况下没有进行考虑,这就造成了每一套系统都需要从零开始的窘境,这时,多项目框架就有了一定的优势。如果企业有一定的技术实力,对成本要求不高,可以自主开发;如果不想投入过多的资源在上面,那么成品多项目框架会是一个较为优质的选择。 力软多项目快速开发框架,采用组件化设计理念,并内置高性能、高并发、高复用的基础功能模块,包括前端UI、工作流、表单、权限、即时通讯、数据可视化等,可以快速构建企业信息管理系统,例如OA/ERP/CRM/HRM/MIS等,同时可以同步生成APP/小程序(微信、支付宝、百度、头条、钉钉等)极大地节省了开发中的代码量,可以使软件开发时间及成本压缩到一个较低的水平。 框架介绍: 一款好的软件框架除了功能的完善以外,界面UI也是一个不可忽视的因素,力软框架界面炫酷,交互友好,搭配5套风格界面,总有一套适合你。 经典版 风尚版 炫动版 飞扬版 主题五 框架特点 1

用了Dapper之后通篇还是SqlConnection,真的看不下去了

我的梦境 提交于 2020-08-07 14:55:44
一:背景 1. 讲故事 前几天看公司一个新项目的底层使用了dapper,大家都知道dapper是一个非常强大的半自动化orm,帮程序员解决了繁琐的mapping问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示: public class UserDAL : BaseDAL { public List<UserModel> GetList() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var list = conn.Query<UserModel>("select * from users").ToList(); return list; } } public bool Insert() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var execnum = conn.Execute("insert into xxx "); return execnum > 0; } } public bool Update() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var execnum =

Dapper MySQL return value

淺唱寂寞╮ 提交于 2020-08-07 04:15:02
问题 i got a problem using dapper and MySql in a ASP.net Identity project. I want to insert a user to a table users and want the autogenerated id from this insertation back. But i get a syntax error and i don´t know why. this is my code for the method insert: public void Insert(TUser member) { var id = db.Connection.ExecuteScalar<int>(@"Insert into users (UserName, PasswordHash, SecurityStamp,Email,EmailConfirmed,PhoneNumber,PhoneNumberConfirmed, AccessFailedCount,LockoutEnabled,LockoutEndDateUtc

Dapper MySQL return value

邮差的信 提交于 2020-08-07 04:12:46
问题 i got a problem using dapper and MySql in a ASP.net Identity project. I want to insert a user to a table users and want the autogenerated id from this insertation back. But i get a syntax error and i don´t know why. this is my code for the method insert: public void Insert(TUser member) { var id = db.Connection.ExecuteScalar<int>(@"Insert into users (UserName, PasswordHash, SecurityStamp,Email,EmailConfirmed,PhoneNumber,PhoneNumberConfirmed, AccessFailedCount,LockoutEnabled,LockoutEndDateUtc

C# 数据操作系列

柔情痞子 提交于 2020-08-04 16:56:56
0. 前言 在前一篇中我们讲到了Dapper的应用,但是给我们的感觉Dapper不像个ORM更像一个IDbConnection的扩展。是的,没错。在实际开发中我们经常用Dapper作为对EF Core的补充。当然了Dapper并不仅仅只有这些,就让我们通过这一篇文章去让Dapper更像一个ORM吧。 1. Dapper Contrib Dapper Contrib 扩展了Dapper对于实体类的CRUD方法: 安装方法: 命令行: dotnet add package Dapper.Contrib NuGet: Install-Package Dapper.Contrib 使用: using Dapper.Contrib.Extensions; 这个是一个使得Dapper功能更强大的扩展包,因为支持了CRUD,所以需要对实体类添加配置,该扩展包使用Attribute作为依据进行相关映射配置: [Table("Model")] public class Model { [Key] [ExplicitKey] public int Id{get;set;} [Computed] public int Count {get;set;} [Write] public String Name{get;set;} } 这是所有的配置,Table用来声明是一个表,必须指定表名

Automapper vs Dapper for mapping

佐手、 提交于 2020-08-04 06:15:07
问题 This question is to verify if the current implementation is the right way to go about in terms of best practices and performance. So far in all my previous companies I have been using Auto Mapper to map relational objects to domain model entities and domain model entities to Dtos. The ORM tools have been Entity framework. In my current company they are using Dapper as ORM tool and do not use AutoMapper as they say Dapper does the mapping for you internally. So the way they have structured the

Automapper vs Dapper for mapping

本小妞迷上赌 提交于 2020-08-04 06:13:23
问题 This question is to verify if the current implementation is the right way to go about in terms of best practices and performance. So far in all my previous companies I have been using Auto Mapper to map relational objects to domain model entities and domain model entities to Dtos. The ORM tools have been Entity framework. In my current company they are using Dapper as ORM tool and do not use AutoMapper as they say Dapper does the mapping for you internally. So the way they have structured the

Automapper vs Dapper for mapping

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-04 06:13:11
问题 This question is to verify if the current implementation is the right way to go about in terms of best practices and performance. So far in all my previous companies I have been using Auto Mapper to map relational objects to domain model entities and domain model entities to Dtos. The ORM tools have been Entity framework. In my current company they are using Dapper as ORM tool and do not use AutoMapper as they say Dapper does the mapping for you internally. So the way they have structured the

C#枚举高级战术

梦想与她 提交于 2020-07-28 20:12:58
文章开头先给大家出一道面试题: 在设计某小型项目的数据库(假设用的是 MySQL)时,如果给用户表(User)添加一个字段(Roles)用来存储用户的角色,你会给这个字段设置什么类型?提示:要考虑到角色在后端开发时需要用枚举表示,且一个用户可能会拥有多个角色。 映入你脑海的第一个答案可能是:varchar 类型,用分隔符的方式来存储多个角色,比如用 1|2|3 或 1,2,3 来表示用户拥有多个角色。当然如果角色数量可能超过个位数,考虑到数据库的查询方便(比如用 INSTR 或 POSITION 来判断用户是否包含某个角色),角色的值至少要从数字 10 开始。方案是可行的,可是不是太简单了,有没有更好的方案?更好的回答应是整型(int、bigint 等),优点是写 SQL 查询条件更方便,性能、空间上都优于 varchar。但整型毕竟只是一个数字,怎么表示多个角色呢?此时想到了二进制位操作的你,心中应该早有了答案。且保留你心中的答案,接着看完本文,或许你会有意外的收获,因为实际应用中可能还会遇到一连串的问题。为了更好的说明后面的问题,我们先来回顾一下枚举的基础知识。 枚举基础 枚举类型的作用是限制其变量只能从有限的选项中取值,这些选项(枚举类型的成员)各自对应于一个数字,数字默认从 0 开始,并以此递增。例如: public enum Days { Sunday, Monday,

1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)

纵然是瞬间 提交于 2020-07-28 19:03:49
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主从库、多库的需求。( 其实不管有没有这个需求,Dapper的封装应当像NetDh框架里封装的那样使用) ; 2.涉及日志操作类的设计,需要记录用户操作日志、记录系统异常日志等; 3.涉及缓存操作类的设计,这点不用需求都应该当考虑,不管是小项目的内存缓存还是大项目中的Redis/Memcache等; 4.涉及二次开发模式简单的设计。因为多个客户需要同一个项目产品,但是客户之间对该产品的需求点又有些不一样。 本文先讲为了第1点需求而封装的数据库操作类,其它三点在接下来文章中也会介绍。 2.ORM框架Dapper介绍 Dapper是轻量级高效的框架,它高效原因是利用 Emit技术 + 各种解析缓存 + DataReader 。 Dapper可以在所有Ado.net Providers下工作,包括SQL Server, Oracle, MySQL , SQLite, PostgreSQL, sqlce, firebird 等,这些数据库操作类都有实现IDbConnection接口。你看源码会发现,Dapper提供的public方法大都是对IDbConnection的扩展。