Dapper.SimpleCRUD:Dapper的CRUD助手

我们在项目开发中,面对一些高并发、大数据量等业务场景,往往对SQL语句的性能要求比较高,这个时候为了方便灵活控制,我们一般就会编写原生的SQL。

Dapper就是一个非常高性能的轻量级ORM框架,Dapper采用原生SQL语句的方式,对于CRUD这些简单操作我们一般都会自行封装,不然就会变成很繁琐。

今天给大家推荐一个Dapper的CRUD扩展库,就可以满足我们的需求,减少我们的工作量。

01 项目简介

Dapper.SimpleCRUD是一个开源项目,它基于Dapper开发的,为开发者提供了简单的CRUD操作帮助器。

Dapper本身是一个轻量级的ORM框架,它允许开发者使用SQL语句直接操作数据库,同时又能享受到ORM带来的便利,如参数化查询等。

而Dapper.SimpleCRUD则进一步简化了这一过程,让开发者能够更轻松地执行CRUD操作。

Dapper.SimpleCRUD的核心功能

CRUD操作:通过简单的API,开发者可以轻松地执行插入、读取、更新和删除操作,包括Get、GetList、Insert、Update、Delete等。通过扩展IDbConnection接口,可以直接使用,无需额外的配置。

模型属性支持:通过使用属性(如[Key]、[Table]、[Column]等),可以轻松地指定模型与数据库表之间的映射关系。同时提供[Editable(false)]、[ReadOnly(true)]、[IgnoreSelect]、[IgnoreInsert]、[IgnoreUpdate]等属性,用于控制模型属性在CRUD操作中的行为。

异步操作支持:对于需要处理大量数据或需要提高响应速度的应用,Dapper.SimpleCRUD提供了异步操作的支持。

02 使用方法

1、定义模型

csharp 复制代码
[Table("Users")]  
public class User  
{  
    [Key]  
    public int UserId { get; set; }  
    public string FirstName { get; set; }  
    public string LastName { get; set; }  
    public int Age { get; set; }  

    // 额外的、不在数据库中的属性  
    [Editable(false)]  
    public string FullName { get { return string.Format("{0} {1}", FirstName, LastName); } }  
}

2、执行CRUD操作

ini 复制代码
// 假设已经有一个打开的数据库连接 connection  

// 插入操作  
var newId = connection.Insert(new User { FirstName = "John", LastName = "Doe", Age = 30 });  

// 读取操作  
var user = connection.Get<User>(newId);  

// 更新操作  
user.Age = 31;  
connection.Update(user);  

// 删除操作  
connection.Delete<User>(newId);

03 项目地址

github.com/ericdc1/Dap...

更多开源项目: github.com/bianchengle...

- End -

推荐阅读

2个零基础入门框架教程!

Html2OpenXml:HTML转化为OpenXml的.Net库,轻松实现Html转为Word。

SharpLab:.Net反编译工具,方便实时查看反编译后的代码!

盘点4个.Net跨平台图形开源库!

Flurl:一个Star 3.9K的链式RESTful风格HTTP开源.Net库

相关推荐
80530单词突击赢1 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
爬山算法2 小时前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
WeiXiao_Hyy2 小时前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
苏渡苇2 小时前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
long3162 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
rannn_1113 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
短剑重铸之日3 小时前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
Dragon Wu4 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
一个有梦有戏的人4 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
爬山算法4 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate