FluentData 从入门到精通:C#.NET 数据访问最佳实践

简介

FluentData 是一个微型 ORM(micro‑ORM),主打「Fluent API」风格,让开发者在保持对原生 SQL 完全控制的同时,享受链式调用的便捷性。

它与 Dapper、Massive 类似,但在提供动态对象、强类型映射、多结果集及自定义实体工厂等功能方面更为完善,且无需修改现有业务实体即可接入。

核心特性

  • 流畅的 API:通过链式调用实现直观的数据库操作

  • 多数据库支持:支持 SQL Server、MySQL、Oracle、SQLite 等

  • 高性能:接近原生 ADO.NET 的性能

  • 事务管理:支持本地和分布式事务

  • 存储过程支持:简化存储过程调用

  • 灵活的映射:支持自定义对象映射

  • 参数化查询:防止 SQL 注入

  • 批量操作:高效的批量插入和更新

安装与配置

// NuGet 安装
Install-Package FluentData

// 创建 DbContext
public class AppDbContext : DbContext
{
   
   
    public AppDbContext() : base(new SqlServerProvider(), "ConnectionString")
    {
   
   
        // 配置选项
        Configuration.AutoCommit = false;
        Configuration.PrefixParametersWithAtSign = true;
    }
}

核心 CRUD 用法

查询
  • 多条记录
// 返回 List<T>
var list = db.Sql("SELECT * FROM Users WHERE Age > @min")
             .Parameter("min", 18)
             .QueryMany<User>();
  • 单条记录
var user = db.Sql("SELECT * FROM Users WHERE Id = @id")
             .Parameter("id", 1)
             .QuerySingle<User>();
  • 动态类型
var dyn = db.Sql("SELECT Name, Age FROM Users")
            .QueryMany<dynamic>();
插入
// 方式一:指定表名与列
int newId = db.Insert("Users")
              .Column("Name", "Alice")
              .Column("Age", 28)
              .ExecuteReturnLastId<int>();

// 方式二:POCO
int id2 = db.Insert<User>()
            .AppendData(new User {
   
    Name = "Bob", Age = 30 })
            .ExecuteReturnLastId<int>();
更新
int rows = db.Update("Users")
             .Column("Age", 29)
             .Where("Id", 1)
             .Execute();
删除
int deleted = db.Delete("Users")
                .
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值