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
安装 SQLite 驱动包
dotnet add package FreeSql.Provider.Sqlite - 2
使用连接字符串创建单例 IFreeSql 实例
- 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 数据每日更新。
相关项目
面向 Node.js 与 TypeScript 的 ORM,提供类型安全的数据库访问,支持 PostgreSQL、MySQL、SQLite、MongoDB 等。
4.8万2608TypeScriptApache-2.0更新于 23小时前
基于 Data Mapper 与 Unit of Work 模式的 Node.js TypeScript ORM,支持多种 SQL 数据库与 MongoDB。
9270+7 本周704TypeScriptMIT更新于 4小时前