dapper

How to Get entity by Unique Key using Dapper.Contrib?

有些话、适合烂在心里 提交于 2021-01-28 23:59:13
问题 I have an object, assume public class User { [Key] int TheId { get; set; } string Name { get; set; } int Age { get; set; } } TheId is my auto increment column and Name is my unique key. When saving a user, I want to check its existence by: var user= connection.Get<User>("John"); But, because of my Key is not Name but TheId , I can't do this. If I set Name property as [KeyExplicit] that time when I want to save my user by: connection.Insert(myUser); This time, dapper expect TheId property

Dapper strongly typed Query returning default object values

橙三吉。 提交于 2021-01-28 04:41:02
问题 just started to use Dapper and like it. I'm having a problem with it, it returns the right number of objects, butthey all have default values for their properties using (var dbConnection = Connection) { await dbConnection.OpenAsync(); const string sQuery2 = @"SELECT * FROM ChipTime WHERE MacAddress = @MacAddress AND ClientId = @ClientId ORDER BY CreateDate Desc"; var chipTimes = dbConnection.Query<ChipTime>(sQuery2, new { ClientId = clientId, MacAddress = id }).ToList(); } chipTimes just has

Mapping fields in stored procedure to class properties with different names with Dapper

我与影子孤独终老i 提交于 2021-01-28 04:05:08
问题 I have this exert from a POCO class with many fields: public class Call { public int Id { get; set; } public string Customer { get; set; } public int StatusId { get; set; } public int UserAssignedToId { get; set; } public string UserAssignedToName { get; set; } } However my stored procedure returns different names to the properties above (in this case the Id is before: IdCall IdStatus IdUserAssignedTo This is the code I am using to execute the stored procedure: var call = conn.Query<Call>(

Mapping fields in stored procedure to class properties with different names with Dapper

亡梦爱人 提交于 2021-01-28 03:48:08
问题 I have this exert from a POCO class with many fields: public class Call { public int Id { get; set; } public string Customer { get; set; } public int StatusId { get; set; } public int UserAssignedToId { get; set; } public string UserAssignedToName { get; set; } } However my stored procedure returns different names to the properties above (in this case the Id is before: IdCall IdStatus IdUserAssignedTo This is the code I am using to execute the stored procedure: var call = conn.Query<Call>(

基于Dapper的开源LINQ扩展,且支持分库分表自动生成实体二

痴心易碎 提交于 2021-01-25 03:23:05
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表达式扩展可以方便的进行查询筛选操作 支持分库分表 默认支持按年分库按月分表,也支持自定义分库分表.从此大数据不用愁 T4自动生成实体 有T4模板自动生成实体类,再也不用手写那些烦人的实体类了.仓储类及接口也支持自动生成 使用门槛低,快速上手 使用非常简单,可以快速上手 注意问题 本框架只支持单表的Lambda表达式查询,如果多表需要手写sql,框架支持根据sql查询修改等. 另外不太建议连表查询,推荐在逻辑层处理 开源协议 MIT license. 上一期我们写了分库分表的增删改查,这一期我们写一下不分库分表的增删改查: 不分库分表 查询 根据主键查询 var repository = RepositoryFactory.Create<ProductSaleByDayNSEntity>();

Zipkin与SKYWalking的对比

微笑、不失礼 提交于 2021-01-15 13:12:42
链路监控的原理:理论依据是来源于 2010 年 google 发布的一篇论文 dapper Zipkin 优: 提供有 Query 接口,更强大的用户界面和系统集成能力,可以基于该接口二次开发实现 社区是 Apache ,运营更好,更活跃,支持的语言更丰富 缺: 侧重收集器和存储服务,虽然也有用户界面,但其功能与 SKYWalking 不可同日而语 Zipkin 的 Java 接口实现 Brave ,只提供了基本的操作 API ,如果需要与框架或者项目集成的话,就需要手动添加配置文件或增加代码。 版本 Maven 依赖复杂,会出现冲突导致功能不可用问题 SKYWalking 优: 是一个完整的性能监控解决方案:有从探针、收集器、存储到 Web 界面等全套体系 基于 Java Agent 探针技术,通过字节码注入的方式实现调用拦截和数据收集,可以做到真正的代码无侵入,只需要在启动服务器的时候添加一些参数,就可以完成探针的部署 已经纳入 Apache 开源项目,并且是中国的开源项目,文档更丰富,更方便理解; 缺: 自我定制不方便 语言相对集中在 Java 语言 总结: 从公司的定位场景上说,短期目标 SKYWalking 具有优势:无需对项目代码进行任何改动就可以部署探针、追踪数据细粒化到方法调用级别、功能强大的用户界面以及几乎比较全面的 Java 框架支持。但是长远来看,学习

Dapper官方教程翻译1:Dapper是什么?(转)

空扰寡人 提交于 2021-01-13 22:09:43
Dapper官方教程翻译1:Dapper是什么? 2018年12月20日 16:07:28 Day_and_Night_2017 阅读数:108 什么是Dapper? Dapper是.NET的一个简单的对象映射器,在速度上拥有微ORM之王的头衔,并且几乎与使用原始ADO.NET数据读取器的速度一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过提供有用的扩展方法来查询数据库,从而扩展IDbConnection。 如何使用Dapper? 使用Dapper只需要三步: 1.创建IDbConnecton对象 2.写一个CURD语句 3.将语句作为参数传递给Execute方法。 Dapper安装: 使用NuGet命令: Install-Package Dapper 数据库要求: 只要是提供了数据库Provider的数据库,就可以用Dapper。 Dapper扩展方法: Execute Query QueryFirst QueryFirstOrDefault QuerySingle QuerySingleOrDefault QueryMultiple string sqlOrderDetails = "SELECT TOP 5 * FROM OrderDetails;"; string sqlOrderDetail = "SELECT * FROM

Dapper官方教程翻译2:Dapper方法之Execute(转)

老子叫甜甜 提交于 2021-01-13 22:01:42
Dapper官方教程翻译2:Dapper方法之Execute 2018年12月20日 16:28:35 Day_and_Night_2017 阅读数:157 Execute方法描述: Execute是Dapper对数据库操作的一个扩展,可以由IDbConnection对象调用。它可以执行一条命令一或多次,返回类型是受影响的行数。这个方法通常用于执行: Stored Procedure (存储过程) INSERT statement (插入语句) UPDATE statement (更新语句) DELETE statement (删除语句) 该方法可传递的参数: Execute方法参数说明 参数名 参数含义 Sql 可执行的数据库语句 param 命令中的占位参数 transaction 使用的事务 commandTimeout 超时时长 commandType 命令类型 示例:执行存储过程 执行一次存储过程: string sql = "Invoice_Insert"; using ( var connection = My.ConnectionFactory()) { var affectedRows = connection.Execute(sql, new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"},

Dapper学习(二)之Query相关

走远了吗. 提交于 2021-01-13 22:01:32
0. FIrst , Single & Default 使用这个方法时要小心,First 和 Single 是不同的。 这里,对这个表做下说明: 如果使用 First , 当没有查到元素时,会报错;如果查到一个元素,会返回这个元素;如果查到多个元素,会返回第一个元素; 如果使用 Single , 没有查到元素会报错;查到一个元素,则返回这个元素;查到多个元素,则报错; 如果使用 FirstOrDefault , 没有查到元素会返回默认值;如果查到一个元素,则返回这个元素;如果查到多个元素,则返回第一个元素; 如果使用 SingleOrDefault , 没有查到元素返回默认值;如果查到一个元素,则返回这个元素;如果查到多个元素,则报错; 1. QueryFirst 可以用来查询和映射第一个结果 结果可以被映射到: Anonymous Strongly Typed 参数 1.1 Query Anonymous 执行一个查询,并且映射第一个结果到一个动态集合 string sql = " SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID; " ; using ( var connection = new SqlConnection(FiddleHelper

Dapper学习(一)之Execute和Query

百般思念 提交于 2021-01-13 21:14:14
Dapper是一个用于.NET的简单的对象映射,并且在速度上有着轻ORM之王的称号。 Dapper扩展IDbConnection,提供有用的扩展方法来查询数据库。 那么Dapper是怎样工作的呢? 总共三步: 创建一个IDbConnection对象 写一个语句来执行CRUD操作 传递语句作为Execute方法的一个参数 因为这篇文章主要是为了学习其中一些方法的使用,所以,这里不再叙述安装等的一些使用,有需要的同学可以参考: https://dapper-tutorial.net/dapper 1.Execute Execute是可以被IDbConnection类型的任何对象调用的扩展方法。它可以执行一个命令一次或者很多次,并且返回受影响的行数。 这个方法可以用于执行: 存储过程(Stored Procedure) 插入语句(INSERT statement) 更新语句(UPDATE statement) 删除语句(DELETE statement) 下面的表格,展示了Execute方法的参数 这里给出一个实现代码的示例,其余部分直接在官网上的示例上面记录学习。 using Dapper; using System; using System.Data.SqlClient; using System.Runtime.Serialization; namespace Dapper