dapper

多角度让你彻底明白yield语法糖的用法和原理及在C#函数式编程中的作用

不想你离开。 提交于 2020-04-17 16:40:19
原文: 多角度让你彻底明白yield语法糖的用法和原理及在C#函数式编程中的作用 如果大家读过dapper源码,你会发现这内部有很多方法都用到了yield关键词,那yield到底是用来干嘛的,能不能拿掉,拿掉与不拿掉有多大的差别,首先上一段dapper中精简后的Query方法,先让大家眼见为实。 private static IEnumerable<T> QueryImpl<T>( this IDbConnection cnn, CommandDefinition command, Type effectiveType) { object param = command.Parameters; var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType()); var info = GetCacheInfo(identity, param, command.AddToCache); IDbCommand cmd = null; IDataReader reader = null; bool wasClosed = cnn.State == ConnectionState.Closed; try { while (reader.Read

Is there a way to map properties to column names using some .Insert extension method for Dapper?

邮差的信 提交于 2020-04-17 08:42:24
问题 I have the following challenge with this class: Public Class MyClass Property Id As Integer Property LastName as String End Class The corresponding data table in the database has as fields: Id (int, not null) Last-Name (nvarchar(80),null) So I need to map MyClass.LastName to MyClasses.Last-Name and have a hell of a time... When I write a custom Insert query it all works, but I would like to use the .Insert statement of one of the Dapper extensions packages. I tried Dapper.Contrib, but this

Is there a way to map properties to column names using some .Insert extension method for Dapper?

馋奶兔 提交于 2020-04-17 08:39:06
问题 I have the following challenge with this class: Public Class MyClass Property Id As Integer Property LastName as String End Class The corresponding data table in the database has as fields: Id (int, not null) Last-Name (nvarchar(80),null) So I need to map MyClass.LastName to MyClasses.Last-Name and have a hell of a time... When I write a custom Insert query it all works, but I would like to use the .Insert statement of one of the Dapper extensions packages. I tried Dapper.Contrib, but this

多角度让你彻底明白yield语法糖的用法和原理及在C#函数式编程中的作用

非 Y 不嫁゛ 提交于 2020-04-17 00:00:56
【推荐阅读】微服务还能火多久?>>> 如果大家读过dapper源码,你会发现这内部有很多方法都用到了yield关键词,那yield到底是用来干嘛的,能不能拿掉,拿掉与不拿掉有多大的差别,首先上一段dapper中精简后的Query方法,先让大家眼见为实。 private static IEnumerable<T> QueryImpl<T>(this IDbConnection cnn, CommandDefinition command, Type effectiveType) { object param = command.Parameters; var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType()); var info = GetCacheInfo(identity, param, command.AddToCache); IDbCommand cmd = null; IDataReader reader = null; bool wasClosed = cnn.State == ConnectionState.Closed; try { while (reader.Read()) { object val = func

多角度让你彻底明白yield语法糖的用法和原理及在C#函数式编程中的作用

我是研究僧i 提交于 2020-04-16 22:27:43
【推荐阅读】微服务还能火多久?>>> 如果大家读过dapper源码,你会发现这内部有很多方法都用到了yield关键词,那yield到底是用来干嘛的,能不能拿掉,拿掉与不拿掉有多大的差别,首先上一段dapper中精简后的Query方法,先让大家眼见为实。 private static IEnumerable<T> QueryImpl<T>(this IDbConnection cnn, CommandDefinition command, Type effectiveType) { object param = command.Parameters; var identity = new Identity(command.CommandText, command.CommandType, cnn, effectiveType, param?.GetType()); var info = GetCacheInfo(identity, param, command.AddToCache); IDbCommand cmd = null; IDataReader reader = null; bool wasClosed = cnn.State == ConnectionState.Closed; try { while (reader.Read()) { object val = func

How to properly “Singularize” table names with Dapper.Contrib?

你。 提交于 2020-04-13 14:53:58
问题 I have a .Net Core 3.1 Console application. In SQL Server database I have tables with singular names, the same as my POCO classes, which is convenient for matching and maintaining. For Insert, Update and Delete operations I want to use Dapper.Contrib library. But when I run Insert function Dapper pluralize table names in generated SQL queries. SQL table "Student": CREATE TABLE Student StudentId int NOT NULL PRIMARY KEY, FirstName varchar(50), LastName varchar(50) C# code public class Student

EF 太重,MyBatis 太轻,ORM 框架到底怎么选 ?

早过忘川 提交于 2020-04-12 12:42:16
以 EF 为代表的基于 Linq 的 ORM 框架总是 很重 。 他们的功能早已超出了一个 ORM 的范畴, ORM 是 Object Relational Mapping ,从名字上看,其初衷是将 数据库中的字段 与 实体中的属性 进行关联映射, 但是 重型 ORM 框架 做了很多 额外 的事情 : 数据库连接 数据库事务包装 实体缓存 实体关联管理 数据库表同步 这些功能很好, 强大的功能往往是死板的, 我们无法编写那些灵活的 Sql 去实现某些简便的操作。 以 MyBatis.NET、Dapper 为代表的, 则是基于开发者自行编写 Sql 的 ORM 框架又 太轻。 因为是自行编写 Sql , 所以他们非常灵活, 但是用起来很 痛苦 。 哪怕是一个简单的 Insert ,Update 也得写 Sql, 而且还无法摆脱 数据库 兼容的问题。 你所编写的那些 Sql 在大部分情况下,只能用于一种 数据库 今天要向大家介绍一个 轻量级、不用写 Sql、可以兼容多数据库 的 ORM 框架 Reface.NPI 什么是 NPI NPI 全名 .Net Persistent Interface 。 这是一个利用 interface 实现的轻量级 ORM 框架, 它与市面上大多数的 ORM 框架不同,它不基于 Linq 进行数据库操作,而是基于 Method Name 。 例如

EF 太重,MyBatis 太轻,ORM 框架到底怎么选 ?

不羁岁月 提交于 2020-04-12 12:24:20
以 EF 为代表的基于 Linq 的 ORM 框架总是 很重 。 他们的功能早已超出了一个 ORM 的范畴, ORM 是 Object Relational Mapping ,从名字上看,其初衷是将 数据库中的字段 与 实体中的属性 进行关联映射, 但是 重型 ORM 框架 做了很多 额外 的事情 : 数据库连接 数据库事务包装 实体缓存 实体关联管理 数据库表同步 这些功能很好, 强大的功能往往是死板的, 我们无法编写那些灵活的 Sql 去实现某些简便的操作。 以 MyBatis.NET、Dapper 为代表的, 则是基于开发者自行编写 Sql 的 ORM 框架又 太轻。 因为是自行编写 Sql , 所以他们非常灵活, 但是用起来很 痛苦 。 哪怕是一个简单的 Insert ,Update 也得写 Sql, 而且还无法摆脱 数据库 兼容的问题。 你所编写的那些 Sql 在大部分情况下,只能用于一种 数据库 今天要向大家介绍一个 轻量级、不用写 Sql、可以兼容多数据库 的 ORM 框架 Reface.NPI 什么是 NPI NPI 全名 .Net Persistent Interface 。 这是一个利用 interface 实现的轻量级 ORM 框架, 它与市面上大多数的 ORM 框架不同,它不基于 Linq 进行数据库操作,而是基于 Method Name 。 例如

.Net 微服务架构技术栈的那些事

孤人 提交于 2020-04-09 19:19:35
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务:

.Net 微服务架构技术栈的那些事

ε祈祈猫儿з 提交于 2020-04-09 17:49:10
一、前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时让新手对微服务相关技术有一个更深入的了解。 二、技术栈 2.1 工欲善其事,必先利其器 现在互联网盛行的年代,互联网产品也层出不穷,受欢迎的互联网产品都有一个比较牛的技术团队,我这里分享下.net 微服务架构技术栈图如下: 俗话说得好:工欲善其事,必先利其器。一个优秀的工程师应该善于使用框架和工具,在微服务这一块的技术选型并非一蹴而就,需要经过日积月累和落地的项目才能完善。 下文我会一一分享技术栈中的主要框架和工具的使用场景,这篇文章就不一一分享实战例子。 2.2 微服务 微服务如何“微”? 微服务,当然核心是主题是“微”,怎么微呢?应该如何微呢?在我刚来杭州的时候接触过一个电商系统的 单体架构 ,系统比较庞大,结合了各种电商该拥有的业务逻辑和场景, 代码也比较难于维护,前前后后接手的人也比较多,代码耦合度太高,改个业务逻辑基本上是牵一发而动全身,跟我上个月分享的关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章中的电商系统最初的架构图类似,如下: 那针对这个架构就有可“微”之谈了。 这里针对该 单体架构 可以做如下几个原则上进行“微”服务: