热门标签 | 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



推荐阅读
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 自 Node.js 6.3 版本起,调试功能已内置在核心模块中,无需额外安装 node-inspector 等工具。通过简单的命令即可启动调试模式,并利用 Chrome 浏览器进行高效的代码调试。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 解决Anaconda安装TensorFlow时遇到的TensorBoard版本问题
    本文介绍了在使用Anaconda安装TensorFlow时遇到的“Could not find a version that satisfies the requirement tensorboard”错误,并提供详细的解决方案,包括创建虚拟环境和配置PyCharm项目。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 本文介绍了一个SQL Server自定义函数,用于从字符串中提取仅包含数字和小数点的子串。该函数通过循环删除非数字字符来实现,并附带创建测试表、存储过程以演示其应用。 ... [详细]
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社区 版权所有