Repolode
dotnetcore

dotnetcore/FreeSql

FreeSql 是一款 .NET ORM,支持 AOT、Code First 迁移,并兼容 MySQL、PostgreSQL、Oracle、SQLite 及多种国产数据库。

Star
4,409
Fork
910
未关闭 Issue
179
最近提交
7天前

这是什么?

FreeSql 是一个 .NET 对象关系映射(ORM)库,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin 以及 AOT 场景。开发者用 C# 或 VB.NET 定义实体类,然后通过流式 API 对数据库进行查询、新增、更新和删除。

除数据访问外,它也覆盖表结构管理。Code First 迁移可以让数据表与实体定义保持同步,DbFirst 则能从现有数据库生成实体类。导航属性支持一对多和多对多关系,并提供 Include 与延迟加载。

该库支持 MySQL、SQL Server、PostgreSQL、Oracle、SQLite、Firebird、ClickHouse、DuckDB、TDengine、QuestDB、MS Access 等数据库,也兼容达梦、人大金仓、南大通用等国产数据库。此外还提供读写分离、分表分库、全局过滤器,以及乐观锁和悲观锁支持。

核心功能

  • 01支持 Code First 数据迁移,也可从现有数据库生成实体类(DbFirst)
  • 02支持一对多、多对多导航属性,以及 Include 和延迟加载
  • 03支持基于表达式的查询,并可自定义解析
  • 04支持读写分离、分表分库和全局过滤器
  • 05支持乐观锁与悲观锁
  • 06兼容多种关系型、分析型和嵌入式数据库,包括多款国产数据库

适用场景

  • 在 .NET 后端中用同一套数据访问层对接多种数据库
  • 在 .NET 项目中使用达梦、人大金仓、南大通用等国产数据库
  • 为高并发 .NET 应用添加读写分离或分表分库
  • 基于已有数据库结构快速生成实体类

快速上手

  1. 1

    安装 SQLite 驱动包

    dotnet add package FreeSql.Provider.Sqlite
  2. 2

    使用连接字符串创建单例 IFreeSql 实例

  3. 3

    定义实体并使用 fsql.Select<T>() 查询数据

收录于专题

标签

常见问题

FreeSql 是什么?
FreeSql 是一款 .NET ORM,支持 AOT、Code First 迁移,并兼容 MySQL、PostgreSQL、Oracle、SQLite 及多种国产数据库。 FreeSql 是一个 .NET 对象关系映射(ORM)库,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin 以及 AOT 场景。开发者用 C# 或 VB.NET 定义实体类,然后通过流式 API 对数据库进行查询、新增、更新和删除。
FreeSql 可以免费使用吗?用的什么许可证?
FreeSql 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
FreeSql 还在维护吗?
活跃维护中。FreeSql 最近一次提交是在 2026年11月1日。
FreeSql 适合用来做什么?
在 .NET 后端中用同一套数据访问层对接多种数据库 在 .NET 项目中使用达梦、人大金仓、南大通用等国产数据库 为高并发 .NET 应用添加读写分离或分表分库 基于已有数据库结构快速生成实体类
FreeSql 怎么安装和运行?
安装 SQLite 驱动包: dotnet add package FreeSql.Provider.Sqlite 使用连接字符串创建单例 IFreeSql 实例 定义实体并使用 fsql.Select<T>() 查询数据
在哪里获取 FreeSql?
源代码和安装说明在 GitHub 上:https://github.com/dotnetcore/FreeSql

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目