RepoDB:一个介于Dapper、EFCore之间.Net的ORM库

推荐一个介轻量ORM和全功能ORM的开源项目。

01 项目简介

RepoDB 提供了基本操作所需的方法,同时也提供了一些高级功能,如第二层缓存、跟踪、仓储、属性处理器和批量/大量操作。支持的数据库,包括SqlServer、SQLite、MySql和PostgreSql等。

02 关键特性

1、基础操作支持

RepoDB提供了执行基础数据库操作(如CRUD操作)所需的初步方法。

2、高级特性

第二层缓存:用于提高数据检索效率。

跟踪:用于监控和记录数据库操作。

仓储:用于封装数据库访问逻辑。

属性处理器:用于自定义属性映射和转换。

批量/大量操作:用于高效处理大量数据。

3、开发简单易用

使用RepoDB时,开发者用极少的代码调用高级操作。

4、批量操作与数据模型同步

在执行批量操作(如BulkInsert和BulkMerge)时,RepoDB会在执行后将生成的标识列(identity columns)值设置回数据模型,满足开发者重要用例需求。

5、多种执行方式支持

支持不同的执行方式,包括原子(atomic)、批处理(batch)和批量(bulk)操作。

03 使用方法

1、插入记录

复制代码
//插入单条记录
var person = new Person
{
    Name = "John Doe",
    Age = 54,
    CreatedDateUtc = DateTime.UtcNow
};
using (var connection = new SqlConnection(ConnectionString))
{
    var id = connection.Insert(person);
}

//插入多条记录
var people = GetPeople(100);
using (var connection = new SqlConnection(ConnectionString))
{
    var rowsInserted = connection.InsertAll(people);
}

2、查询记录

复制代码
//查询单条记录
using (var connection = new SqlConnection(ConnectionString))
{
    var person = connection.Query<Person>(e => e.Id == 10045);
}

//查询多条记录
using (var connection = new SqlConnection(ConnectionString))
{
    var people = connection.QueryAll<Person>();
}

3、更新记录

复制代码
//更新单条记录
var person = new Person
{
    Id = 1,
    Name = "James Doe",
    Age = 55,
    DateInsertedUtc = DateTime.UtcNow
};
using (var connection = new SqlConnection(ConnectionString))
{
    var updatedRows = connection.Update<Person>(person);
}

//更新多条记录
var people = GetPeople(100);
people
    .AsList()
    .ForEach(p => p.Name = $"{p.Name} (Updated)");
using (var connection = new SqlConnection(ConnectionString))
{
    var updatedRows = connection.UpdateAll<Person>(people);
}

4、删除记录

复制代码
//删除单条记录
using (var connection = new SqlConnection(ConnectionString))
{
    var deletedRows = connection.Delete<Person>(10045);
}

//删除多条记录
using (var connection = new SqlConnection(ConnectionString))
{
    var deletedRows = connection.DeleteAll<Person>();
}

04 项目地址

https://github.com/mikependon/RepoDB

更多开源项目: https://github.com/bianchenglequ/NetCodeTop

我是编程乐趣,一个.Net开发经验老程序员,欢迎"关注"我,每天为你分享开源项目和编程知识。

也欢迎加入【.Net技术编程交流社区】,和大家共同学习交流!,点击加入https://bbs.csdn.net/topics/613465368

  • End -

推荐阅读

2个零基础入门框架教程!

一款可以替代Navicat的数据库管理工具

CSCore:一个.Net功能强大且灵活的开源音频处理库

Blazor开源UI简洁组件:10个热门.Net开源项目推荐!

ExcelDataReader:一个.Net高性能Excel开源读取器

相关推荐
FlDmr4i289 小时前
.NET 10 & C# 14 New Features 新增功能介绍-扩展成员Extension Members
开发语言·c#·.net
小邓的技术笔记14 小时前
Microsoft Agent Framework + Kimi API 实战:控制台应用跑通单次与多轮 Agent 对话
.net
ApjRvH3vg14 小时前
.NET 10 打造 OpenClaw Windows Node
windows·.net
x***r15115 小时前
.NET修复器使用教程 Windows版:解压+管理员运行+问题诊断与修复指南
.net
FlDmr4i2815 小时前
.NET 开发 MCP 服务器完全指南:打造智能数据库查询助手
服务器·数据库·.net
AC赳赳老秦15 小时前
OpenClaw实战案例:用1个主控+3个Agent,实现SEO文章日更3篇
服务器·数据库·python·mysql·.net·deepseek·openclaw
DoUfp0bgq16 小时前
Admin.NET开源版微服务改造记录
微服务·开源·.net
唐青枫17 小时前
C#.NET TPL Dataflow 深入解析:数据流管道、背压控制与实战取舍
c#·.net
喵叔哟17 小时前
4.【.NET10 实战--孢子记账--产品智能化】--C# 14 新语法特性详解与实战应用
java·c#·.net
Khsc434ka17 小时前
.NET 10 与智能体时代的架构演进:以 File-Based Apps 为核心的 C# 生态重塑
架构·c#·.net