热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

推荐:利用Dapper.SimpleCRUD扩展Dapper功能以简化CRUD操作

Dapper作为广受欢迎的ORM框架之一,虽然灵活性极高,但在处理基本的CRUD操作时仍需手动编写SQL语句,这无疑增加了开发工作量。为了解决这一问题,Dapper.SimpleCRUD扩展库应运而生。该扩展库通过提供简洁的方法,显著简化了数据访问层的开发流程,使开发者能够更加高效地进行读取、插入、更新和删除操作。此外,Dapper.SimpleCRUD还支持事务管理和批量操作,进一步提升了开发效率和代码可维护性。

背景

Dapper目前应该是大家比较喜欢的orm框架之一,但是它灵活的背后,还是有很多不尽人意的地方,谁想编写基本的读取/插入/更新/删除语句?下面推荐SimpleCRUD为Dapper提供了简单的CRUD帮助器。解放了大家,提高生产力。

功能特性

此扩展添加了以下8个助手:

  • Get(ID)-根据主键获取一条记录

  • GetList ()-获取记录列表,来自表的所有记录

  • GetList (where子句的匿名对象)-获取与where选项匹配的所有记录的列表

  • GetList (条件字符串,带参数的匿名对象)-获取与条件匹配的所有记录的列表

  • GetListPaged (int页码,int每页int,条件字符串,顺序字符串,带参数的匿名对象)-获取与条件匹配的所有记录的分页列表

  • Insert(entity)-插入一条记录并返回新的主键(假定为int主键)

  • Insert (entity)-插入一条记录并返回新的guid主键

  • 更新(实体)-更新记录

  • Delete (id)-基于主键删除记录

  • Delete(entity)-根据类型化的实体删除记录

  • DeleteList (where子句的匿名对象)-删除所有与where选项匹配的记录

  • DeleteList (条件的字符串,带参数的匿名对象)-删除与条件匹配的所有记录的列表

  • RecordCount (条件字符串,带参数的匿名对象)-获取与条件匹配的所有记录的计数

对于面向.NET 4.5或更高版本的项目,以下8个助手用于异步操作:

  • GetAsync(id)-根据主键获取一条记录

  • GetListAsync ()-获取记录列表来自表的所有记录

  • GetListAsync (where子句的匿名对象)-获取与where选项匹配的所有记录的列表

  • GetListAsync (条件字符串,带参数的匿名对象)-获取与条件匹配的所有记录的列表

  • GetListPagedAsync (int页面号,int itemsperpage,条件字符串,命令字符串,带有参数的匿名对象)-获取与条件匹配的所有记录的分页列表

  • InsertAsync(entity)-插入一条记录并返回新的主键(假定为int主键)

  • InsertAsync (entity)-插入一条记录并返回新的guid主键

  • UpdateAsync(entity)-更新记录

  • DeleteAsync (id)-基于主键删除记录

  • DeleteAsync(entity)-根据类型化的实体删除记录

  • DeleteListAsync (where子句的匿名对象)-删除所有与where选项匹配的记录

  • DeleteListAsync (条件字符串,带参数的匿名对象)-删除与条件匹配的所有记录的列表

  • RecordCountAsync (条件字符串,带参数的匿名对象)-获取与条件匹配的所有记录的计数

如果您需要更复杂的东西,请使用Dapper的Query或Execute方法!

数据库支持

有一个更改数据库方言的选项。默认值为Microsoft SQL Server,但可以更改为PostgreSQL或MySQL。我们在.Net Core版本中删除了对SQLite的支持。

开源地址

https://github.com/ericdc1/Dapper.SimpleCRUD



推荐阅读
  • 在实际开发中,连接池是最常使用的数据库管理技术之一。连接池通过创建和管理一组预初始化的数据库连接,使得这些连接可以被多个线程复用,从而显著提高应用程序的性能和资源利用率。本文将详细介绍如何从零开始构建一个自定义的 MySQL 连接池,并将其与 Spring Data 进行集成,以实现高效、可靠的数据库操作。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 本文介绍了 Python 编程中的一些实用技巧和优化方法。首先,讨论了如何高效地交换两个变量的值,例如 `a` 和 `b` 可以通过 `a, b = b, a` 来实现。此外,文章还提供了在进行数值比较时的简洁写法,如使用 `3.14` 进行精确匹配。这些技巧不仅提高了代码的可读性,还能提升程序的运行效率。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • Redis哈希数据结构入门指南
    Redis的哈希数据结构与Java中的HashMap类似,采用数组加链表的方式实现。数组用于存储哈希值的位置,而链表则用于处理哈希冲突的情况。此外,Redis的哈希数据结构还支持高效的字段操作和内存优化,适用于多种应用场景,如缓存和会话管理。 ... [详细]
  • 在C#中开发MP3播放器时,我正在考虑如何高效存储元数据以便快速检索。选择合适的数据结构,如字典或数组,对于优化性能至关重要。字典能够提供快速的键值对查找,而数组则在连续存储和遍历方面表现优异。根据具体需求,合理选择数据结构将显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入解析 Android TextView 中 getImeActionLabel() 方法的使用与代码示例 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 开发日志:在插入数据到一张表的同时更新另一张表的技术细节与最佳实践 ... [详细]
author-avatar
波猫小丝992
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有