写点什么

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

作者:EquatorCoco
  • 2024-07-23
    福建
  • 本文字数:1047 字

    阅读完需:约 3 分钟

项目特性


  • 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"));
复制代码


文章转载自:追逐时光者

原文链接:https://www.cnblogs.com/Can-daydayup/p/18317443

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

EquatorCoco

关注

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
C#开源、简单易用的Dapper扩展类库 - Dommel_C#_EquatorCoco_InfoQ写作社区