首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

C#开源、简单易用的Dapper扩展类库 - Dommel

编程知识
2024年07月23日 06:37

前言

今天大姚给大家分享一个C#开源(MIT License)、免费、简单易用的Dapper扩展类库,帮助.NET开发者使用Dapper的CRUD操作变得更简单:Dommel。

项目特性

  • Dommel 使用 IDbConnection 接口上的扩展方法为 CRUD 操作提供了便捷的 API。
  • Dommel 能够根据你的 POCO 实体自动生成相应的 SQL 查询语句。这大大减少了手动编写 SQL 代码的工作量,并提高了代码的可读性和可维护性。
  • Dommel 支持 LINQ 表达式,这些表达式会被翻译成 SQL 表达式并执行。这使得开发者能够使用更高级、更灵活的查询语法。
  • Dommel 使用 Dapper 作为底层库来执行查询和对象映射。

Dapper

Dapper是一个简单的.NET对象映射器,在速度方面具有"King of Micro ORM"的头衔,几乎与使用原始的ADO.NET数据读取器一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。

 

项目源代码

项目使用

以下是Dommel的简单的CRUD操作,更多实用且复杂操作可以前往项目源码地址查看(文末附带项目源码地址)。

安装Dommel包

定义Product实体类

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int InStock { get; set; }
    public DateTime Created { get; set; }
}

数据新增

var product = new Product { Name = "Awesome bike", InStock = 4 };
var id = await connection.InsertAsync(product);

数据删除

var product = await connection.GetAsync<Product>(1);
await connection.DeleteAsync(product);

数据修改

var product = await connection.GetAsync<Product>(1);
product.Name = "New name";
await connection.UpdateAsync(product);

数据查询

var product = await connection.GetAsync<Product>(1);
var products1 = await connection.GetAllAsync<Product>();
var products2 = await connection.SelectAsync<Product>(p => p.Name == "Awesome bike" && p.Created < new DateTime(2014, 12, 31) && p.InStock > 5);
var products3 = await connection.SelectAsync<Product>(p => p.Name.Contains("bike"));
var products4 = await connection.SelectAsync<Product>(p => p.Name.StartsWith("bike"));
var products5 = await connection.SelectAsync<Product>(p => p.Name.EndsWith("bike"));

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

值得推荐的.NET ORM框架

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

From:https://www.cnblogs.com/Can-daydayup/p/18317443
本文地址: http://shuzixingkong.net/article/310
0评论
提交 加载更多评论
其他文章 阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings
阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings 关于: 首次发表日期:2024-07-23 Mathematics for Machine Learning官方链接: https://mml-book.com ChatGPT和KIMI
阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings 阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings 阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings
LM Studio + open-webui 快速本地部署大语言模型
目录一、前言二、环境准备三、安装设置四、下载模型并运行五、配置 open-webui写在结尾 一、前言 自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发,国内外也衍生了大量的语言模型开放给公众使用。为了可以让更多人接触到AI,让本地化部署更加轻便快捷,于是就有了Ol
LM Studio + open-webui 快速本地部署大语言模型 LM Studio + open-webui 快速本地部署大语言模型 LM Studio + open-webui 快速本地部署大语言模型
typora下载安装以及notepad++下载安装
notepad++下载安装 找到浏览器输入:notepad或者 https://notepad-plus-plus.org/downloads/ 官网下载即可使用 如果官网崩了,可以在微信公众号:A软件安装管家,找到安装notepad++,下载安装即可。 typora下载安装 找到浏览器输入:typ
typora下载安装以及notepad++下载安装 typora下载安装以及notepad++下载安装 typora下载安装以及notepad++下载安装
C语言指针易混淆知识点总结
指针 定义 指针是一个变量,存储另一个变量的内存地址,它允许直接访问和操作内存中的数据,使得程序能够以更灵活和高效的方式处理数据和内存。 获取变量地址:使用取地址符 &amp;。 访问地址上的数据:使用解引用符 *。 例子1 指针是存储另一个变量地址的变量。通过使用取地址符 &amp; 和解引用符
解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝
前几章我们讨论了RLHF的样本构建优化和训练策略优化,这一章我们讨论两种不同的RL训练方案,分别是基于过程训练,和使用弱Teacher来监督强Student 循序渐进:PRM & ORM 想要获得过程
解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝 解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝 解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝
Known框架实战演练——进销存基础数据
本文介绍如何实现进销存管理系统的基础数据模块,基础数据模块包括商品信息、供应商管理和客户管理3个菜单页面。供应商和客户字段相同,因此可共用一个页面组件类。 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite 1. 配置模块 运行项目,在【系统管理-模
英伟达又向开源迈了一步「GitHub 热点速览」
大家是否还记得 2012 年,Linux 之父 Linus Torvalds 在一次活动中“愤怒”地表达了对英伟达闭源 Linux GPU 驱动的不满?这个场景曾是热门表情包,程序员人手一个。
英伟达又向开源迈了一步「GitHub 热点速览」 英伟达又向开源迈了一步「GitHub 热点速览」 英伟达又向开源迈了一步「GitHub 热点速览」
如何优雅地写注释:找到代码注释的黄金平衡点
优雅的注释是一种平衡艺术,它要求我们在不牺牲代码清晰度的前提下,避免过度注释。通过遵循上述原则和技巧,我们可以写出既有助于自己,也有助于他人的注释,从而提升代码的整体质量和可维护性。
如何优雅地写注释:找到代码注释的黄金平衡点 如何优雅地写注释:找到代码注释的黄金平衡点