2023年5月,如何使用Dapper-Extensions在.NET CORE工具案例中实现愚公移山式数据处理?

2026-03-30 15:301阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计982个文字,预计阅读时间需要4分钟。

2023年5月,如何使用Dapper-Extensions在.NET CORE工具案例中实现愚公移山式数据处理?

(文章目录)+ 前言 + Dapper是.NET中较出名的ORM框架之一,与Entity Framework或NHibernate不同,它属于轻量级的,同时也是半自动的。Dapper只有一个代码文件,完全开源,你可以将其放置在项目的任何位置。

(文章目录)


前言

Dapper是.NET中比较出名的ORM框架之一,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。

Dapper网址:github.com/DapperLib/Dapper

Dapper-Extensions是一个小型库,也是Dapper扩展库之一,主要是通过POCO 添加基本的 CRUD 操作(获取、插入、更新、删除)来补充 Dapper。对于更高级的查询方案,Dapper 扩展提供了一个谓词系统。此库的目标是通过不需要任何属性或基类继承来保持 POCO 的纯正性。

2023年5月,如何使用Dapper-Extensions在.NET CORE工具案例中实现愚公移山式数据处理?

Dapper-Extensions的网址:github.com/tmsmith/Dapper-Extensions

Dapper-Extensions的特点:

  • 开箱即用的零配置。
  • 自动映射用于获取、插入、更新和删除操作的 POCO。
  • 获取列表,计数方法适用于更高级的方案。
  • 用于返回分页结果集的 GetPage。
  • 自动支持 Guid 和整数主键(包括对其他键类型的手动支持)。
  • 通过使用ClassMapper(无属性!)的纯POCO。
  • 通过使用类映射器自定义实体表映射。
  • 复合主键支持。
  • 单数和复数表名支持(默认为单数)。
  • 易于使用的谓词系统,适用于更高级的方案。
  • 在生成的 SQL 中正确转义表/列名称(例如:从 [用户] WHERE [用户] 中选择 [名字]。用户 ID = @UserId_0)
  • 单元测试覆盖率(150+ 单元测试)

一、Dapper-Extensions的使用

1.安装包

Install-Package DapperExtensions

2.使用方法

Person类

public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public bool Active { get; set; } public DateTime DateCreated { get; set; } }

2.1 插入数据

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); Person p = new Person { Active = true, FirstName = "Foo", LastName = "Bar", DateCreated = DateTime.UtcNow }; int id = cn.Insert(person); cn.Close(); }

2.2 获取单个实体

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); int personId = 1; Person person = cn.Get<Person>(personId); cn.Close(); }

2.3 删除记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); Person person = cn.Get<Person>(1); cn.Delete(person); cn.Close(); }

2.4 更新记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); int personId = 1; Person person = cn.Get<Person>(personId); person.LastName = "Baz"; cn.Update(person); cn.Close(); }

2.5 获取记录列表

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); var predicate = Predicates.Field<Person>(f => f.Active, Operator.Eq, true); IEnumerable<Person> list = cn.GetList<Person>(predicate); cn.Close(); }

2.6 根据自动排序、获取指定的记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); //排序字段 IList<ISort> sort = new List<ISort> { Predicates.Sort<Person>(p => p.LastName), Predicates.Sort<Person>("FirstName") }; //获取指定的记录 IEnumerable<Person> list = Db.GetPage<Person>(null, sort, 0, 2); cn.Close(); }

2.7 获取过滤条件的记录总数

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); var predicate = Predicates.Field<Person>(f => f.DateCreated, Operator.Lt, DateTime.UtcNow.AddDays(-5)); int count = cn.Count<Person>(predicate); cn.Close(); }

本文共计982个文字,预计阅读时间需要4分钟。

2023年5月,如何使用Dapper-Extensions在.NET CORE工具案例中实现愚公移山式数据处理?

(文章目录)+ 前言 + Dapper是.NET中较出名的ORM框架之一,与Entity Framework或NHibernate不同,它属于轻量级的,同时也是半自动的。Dapper只有一个代码文件,完全开源,你可以将其放置在项目的任何位置。

(文章目录)


前言

Dapper是.NET中比较出名的ORM框架之一,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。

Dapper网址:github.com/DapperLib/Dapper

Dapper-Extensions是一个小型库,也是Dapper扩展库之一,主要是通过POCO 添加基本的 CRUD 操作(获取、插入、更新、删除)来补充 Dapper。对于更高级的查询方案,Dapper 扩展提供了一个谓词系统。此库的目标是通过不需要任何属性或基类继承来保持 POCO 的纯正性。

2023年5月,如何使用Dapper-Extensions在.NET CORE工具案例中实现愚公移山式数据处理?

Dapper-Extensions的网址:github.com/tmsmith/Dapper-Extensions

Dapper-Extensions的特点:

  • 开箱即用的零配置。
  • 自动映射用于获取、插入、更新和删除操作的 POCO。
  • 获取列表,计数方法适用于更高级的方案。
  • 用于返回分页结果集的 GetPage。
  • 自动支持 Guid 和整数主键(包括对其他键类型的手动支持)。
  • 通过使用ClassMapper(无属性!)的纯POCO。
  • 通过使用类映射器自定义实体表映射。
  • 复合主键支持。
  • 单数和复数表名支持(默认为单数)。
  • 易于使用的谓词系统,适用于更高级的方案。
  • 在生成的 SQL 中正确转义表/列名称(例如:从 [用户] WHERE [用户] 中选择 [名字]。用户 ID = @UserId_0)
  • 单元测试覆盖率(150+ 单元测试)

一、Dapper-Extensions的使用

1.安装包

Install-Package DapperExtensions

2.使用方法

Person类

public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public bool Active { get; set; } public DateTime DateCreated { get; set; } }

2.1 插入数据

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); Person p = new Person { Active = true, FirstName = "Foo", LastName = "Bar", DateCreated = DateTime.UtcNow }; int id = cn.Insert(person); cn.Close(); }

2.2 获取单个实体

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); int personId = 1; Person person = cn.Get<Person>(personId); cn.Close(); }

2.3 删除记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); Person person = cn.Get<Person>(1); cn.Delete(person); cn.Close(); }

2.4 更新记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); int personId = 1; Person person = cn.Get<Person>(personId); person.LastName = "Baz"; cn.Update(person); cn.Close(); }

2.5 获取记录列表

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); var predicate = Predicates.Field<Person>(f => f.Active, Operator.Eq, true); IEnumerable<Person> list = cn.GetList<Person>(predicate); cn.Close(); }

2.6 根据自动排序、获取指定的记录

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); //排序字段 IList<ISort> sort = new List<ISort> { Predicates.Sort<Person>(p => p.LastName), Predicates.Sort<Person>("FirstName") }; //获取指定的记录 IEnumerable<Person> list = Db.GetPage<Person>(null, sort, 0, 2); cn.Close(); }

2.7 获取过滤条件的记录总数

using (SqlConnection cn = new SqlConnection(_connectionString)) { cn.Open(); var predicate = Predicates.Field<Person>(f => f.DateCreated, Operator.Lt, DateTime.UtcNow.AddDays(-5)); int count = cn.Count<Person>(predicate); cn.Close(); }