dapper

.net core 实践笔记(三)--封装底层

生来就可爱ヽ(ⅴ<●) 提交于 2021-01-10 13:24:30
前言:   有了前面的工作,简单的架子基本搭建起来了,因为条件有限,只能先测试SqlServer的了,源码放出来,也希望有兴趣的伙伴可以一起改善,相信可以成为未来进阶架构师的第一步,自己有小项目的时候可以直接拿来修改使用。   因为第一次在.net core搭建,经验欠缺,不足之处,欢迎批评指正。   后面将增加日志记录。 ** 温馨提示:如需转载本文,请注明内容出处。** 本文链接: https://www.cnblogs.com/grom/p/9972377.html 源码: https://github.com/Xinzheng-Li/ASP.NET-Core-WebApi 再次邀请大神们改善指点,感激不尽。 概述   如图,像前几篇所述,简单的搭建了三层架构,本篇重点封装底层 (WebApi.Repository)。      说明 Model 层的文件夹用于EF进行从数据库拉取实体,因为没有字段备注,故将实体类修改后拖出文件夹,以免日后更新时被覆盖掉。      IDBRepository 接口,定义了最常用的五个数据库查询接口。      DBRepository 使用Dapper和Dapper.Contrib实现接口,同时指定实现接口的数据库类型,默认MSSQL,也可在派生类中改写。      ConnectionFactory

Dapper(一) 简介和性能

ε祈祈猫儿з 提交于 2021-01-04 17:41:38
Dapper的简介   Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。ORM给我们开发带来便利时,性能也是一个让我们不得不考虑的问题。一般的ORM性能和直接写原生的sql比都差不少,但是Dapper性能还很错,甚至和DbHelperSQL方式性能高出很多。 Dapper的优势 Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后体积小。 Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。 Dapper支持多数据库。诸如:Mysql,SqlLite,Mssql系列,Oracle等一系列的数据库。 Dapper的R支持多表并联的对象。支持一对多 多对多的关系。并且没侵入性,想用就用,不想用就不用,无XML无属性,代码以前怎么写现在还怎么写。 Dapper原理通过Emit反射IDataReader的序列队列

献给 Dapper 使用者的一份礼物

点点圈 提交于 2020-12-12 02:44:00
本文作者:FreeSql & CSRedis 本文链接:https://www.cnblogs.com/kellynic/p/14095502.html 1|0写在开头 众所周知 Dapper 是 .NET 下最轻最快的 ORM,它是喜欢写 SQL 码农的福音,相对于 SqlHelper 它更加方便,据统计 10个 .NETer 有 9个 用过 Dapper 。 由于 .NET 环境的特殊,对 Lambda 表达式树的喜爱,于是市面上有很多出现了基于 Dapper 的轻量级 ORM ,它们几乎都有共同特点,让 Dapper 支持 Lambda 表达式树,写起来顺畅如流水。 今天介绍一款本身功能已经很强大的 ORM ,他提供一个隐藏得比较深的 API 功能,使用起来和 Dapper 没什么两样。 2|0了解 Lambda 表达式树 这要先从 Lambda 表达式开始说起,词语中少了一个 树 字,差别甚大。 表达式,如下各种语法糖骚操作,产生的 IL 一模一样: //使用C# 2.0中的匿名方法获取字符串长度 Func< string , int > strLength = delegate ( string str) { return str.Length; }; Console.WriteLine(strLength( "Hello World!" )); /

FreeSql aop功能介绍

|▌冷眼眸甩不掉的悲伤 提交于 2020-12-07 06:10:22
前言 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+(QQ群:4336577)。 据了解,用户使用很少问问题,编码过程中,因业务阻塞,情有可原;因框架使用问题阻塞,得不偿失。我们的口号:做 .net 最方便的 ORM!愿每一位开发者嘴角上扬😏! 整体功能 IFreeSql 是核心,提供原始用法; FreeSql.DbContext 是扩展包,提供面向对象的用法(像EF); FreeSql.Repository 也是扩展包,提供仓储+工作单元用法(实际上和 DbContext 是一个扩展包); FreeSql.Connection.Extensions 也是扩展包,提供像 Dapper 一样的用法; 源码地址: https://github.com/2881099/FreeSql ,可从这里链向上面介绍的各个仓库。 fsql= new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Attachs=xxxtb.db;Pooling=true;Max Pool Size=10")

[开源] FreeSql AOP 功能模块

只愿长相守 提交于 2020-12-07 05:38:37
前言 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+(QQ群:4336577)。 据了解,用户使用很少问问题,编码过程中,因业务阻塞,情有可原;因框架使用问题阻塞,得不偿失。我们的口号:做 .net 最方便的 ORM!愿每一位开发者嘴角上扬😏! 整体功能 IFreeSql 是核心,提供原始用法; FreeSql.DbContext 是扩展包,提供面向对象的用法(像EF); FreeSql.Repository 也是扩展包,提供仓储+工作单元用法(实际上和 DbContext 是一个扩展包); FreeSql.Connection.Extensions 也是扩展包,提供像 Dapper 一样的用法; 源码地址: https://github.com/2881099/FreeSql ,可从这里链向上面介绍的各个仓库。 fsql= new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Attachs=xxxtb.db;Pooling=true;Max Pool Size=10")

Dapper map multiple joins Sql Query

微笑、不失礼 提交于 2020-11-30 04:34:38
问题 I want to map complex object to dapper result from query which has two inner joins. I know we've solution to map one inner join but I want to map two inner joins result. Here is the Scenario: My Classes are: public class Order { public int id { get; set; } public string order_reference { get; set; } public string order_status { get; set; } public List<OrderLine> OrderLines { get; set; } } public class OrderLine { public int id { get; set; } public int order_id { get; set; } public string

Dapper map multiple joins Sql Query

狂风中的少年 提交于 2020-11-30 04:29:30
问题 I want to map complex object to dapper result from query which has two inner joins. I know we've solution to map one inner join but I want to map two inner joins result. Here is the Scenario: My Classes are: public class Order { public int id { get; set; } public string order_reference { get; set; } public string order_status { get; set; } public List<OrderLine> OrderLines { get; set; } } public class OrderLine { public int id { get; set; } public int order_id { get; set; } public string

asp.net core react 项目实战(一)

牧云@^-^@ 提交于 2020-11-23 10:00:23
asp.net-core-react asp.net core react 简介 开发依赖环境 .NET Core SDK (reflecting any global.json): Version: 2.2.300 Runtime Environment: OS Name: Mac OS X Host (useful for support): Version: 2.2.5 node -v v10.16.0 开发语言 asp.net core react 开发工具 vscode 开发流程 创建sln项目解决方案「sln 不是必须创建 但是创建了对智能提示友好」 dotnet new sln 组织项目 为了时髦一些我在和sln并列层级目录里床架了一个src文件夹 以此来管理源代码 mkdir src 进入src 目录创建一个react web应用 取名为web cd src dotnet new react -o web 回到项目根目录 将新添加的 web项目 添加到sln 项目解决文件中 dotnet sln add src/web/web.csproj 「这个一定要➕加」 我们当前目录结构是这样的 . ├── LICENSE ├── README.md ├── asp.net-core-react.sln └── src └── web ├── ClientApp ├──

[LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询

一笑奈何 提交于 2020-11-22 07:48:28
此框架是Dapper的扩展,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架 支持.net framework4.5.1,.net core2.0及以上,更低版本适配如.netFramework4.0及以下请加群下载 支持Mssql,Oracle,Mysql等数据库 应用层需要引用包Kogel.Dapper.Extension.MsSql(如果数据库是Oracle则引用Kogel.Dapper.Extension.Oracle),Nuget上可以下载安装。 或者使用Nuget命令添加包 Install-Package Kogel.Dapper.Extension.MsSql   目录 [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询 [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射 [LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL并行使用 [LINQ2Dapper]最完整Dapper To Linq框架(五)---查看Linq实际执行的SQL [LINQ2Dapper]最完整Dapper To Linq框架(六)--

[LINQ2Dapper]最完整Dapper To Linq框架(八)---导航属性

送分小仙女□ 提交于 2020-11-22 07:34:09
目录 [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询 [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射 [LINQ2Dapper]最完整Dapper To Linq框架(四)---Linq和SQL并行使用 [LINQ2Dapper]最完整Dapper To Linq框架(五)---查看Linq实际执行的SQL [LINQ2Dapper]最完整Dapper To Linq框架(六)---多表联合与匿名类型返回 [LINQ2Dapper]最完整Dapper To Linq框架(七)---仓储模式 [LINQ2Dapper]最完整Dapper To Linq框架(八)---导航属性 3.1.9.4版本增加新功能导航属性 1.安装 可在Nuget上搜索最新版本( 目前是预览版本,只能通过Nuget命令安装 ) 或者使用Nuget命令 Install-Package Kogel.Dapper.Extension.Mssql 3.1 . 9.6 (此版本可能存在一些小坑,不建议正式项目使用) 2.定义 使用特性 ForeignKey 定义主外键关系 [Display(Rename = " News " )] public