FreeSql介绍

FreeSql是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin,国产首个支持 AOT 发布的 ORM

1.  多场景实现

CodeFirst/DbFirst/DbContext/Repository/UnitOfWork/AOP/

支持.NETCore 2.1+,.NETFramework 4.0+,AOT,Xamarin

2.  多数据库支持(常用的数据库以注明颜色)

Mysql、SqlServer、PostgreSQL、Oracle、Sqlite3 ,Firebird

达梦、人大金仓、南大通用、虚谷、瀚高、ClickHouse、

QuestDB、Access 等数据库

3.  特性

DbFirst:支持DbFirst模式,支持从数据库导入实体类、或者使用实体类工具生成实体类

丰富的表达式函数:支持丰富的表达式函数,以及灵活的自定义解析;

读写分离: 支持读写分离 分表分库 过滤器 租户设计

导航属性: 支持一对多 多对多贪婪加载、已及延时加载

异步同步:支持同步/异步数据库操作方法,丰富多彩的链式查询方法

CodeFirst: 支持 CodeFirst 迁移

采用 ExpressionTree 高性能读取数据

注:文档总结略有不足 可查看官方文档

 FreeSql 官方文档

______                     ____           __
   / ____/ ____  ___  ___   / __/ ___ _   / /
  / __/   / __/ / -_)/ -_) _\ \  / _ `/  / /
 /_/     /_/    \__/ \__/ /___/  \_, / /_/
                                      /_/
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

下载与使用

FreeSql使用方法

下载两个nuget包


FreeSql 下载最新版就行了

Freesql.Provider.(mysql/splserver/postgreSQL) 支持任何数据库 需要哪个用哪个

FreeSql(国产数据库)_应用程序

2.建一个实体类

这个引用需要 手动输入 using FreeSql.DataAnnotations;

表名 [Table(Name="XXX")]

主键 [Column(IsIdentity = true, IsPrimary = true)]

IsPrimary =主键 IsIdentity =是否自增

FreeSql(国产数据库)_数据库_02

3.  Program.cs

数据库是PostgreSQL

CodeFirst

FreeSql(国产数据库)_实体类_03

 各种数据库连接字符串实例

FreeSql(国产数据库)_实体类_04

1.这段代码定义了一个函数,它可以根据提供的 IServiceProvider 创建一个 IFreeSql 实例,用于与 PostgreSQL 数据库进行交互,并具有 SQL 命令监听和自动同步实体结构到数据库的功能。这个函数通常用于依赖注入容器中,以便在应用程序的不同部分共享和重用数据库连接和配置。

2.用于实现控制反转(Inversion of Control,简称IoC),以减少代码之间的耦合度,提高代码的可测试性和可维护性

3.确保在应用程序启动时执行。这样做的好处是,每当应用程序启动时,都会检查并更新数据库结构,以匹配当前的实体类定义(注: 这是CodeFirst优先 如果是DbFirst优先了解下面代码)

FreeSql(国产数据库)_数据库_05

4.增删改查方法(这是封装的方法)

ExecuteAffrows() 这个方法一般使用在 (增(Insert) 删(Delete) 改(Update))

常用执行SQL命令 并返回受影响行数 

FreeSql(国产数据库)_数据库_06

具体实现(放大查看)

FreeSql(国产数据库)_实体类_07