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使用方法
下载两个nuget包
FreeSql 下载最新版就行了
Freesql.Provider.(mysql/splserver/postgreSQL) 支持任何数据库 需要哪个用哪个
2.建一个实体类
这个引用需要 手动输入 using FreeSql.DataAnnotations;
表名 [Table(Name="XXX")]
主键 [Column(IsIdentity = true, IsPrimary = true)]
IsPrimary =主键 IsIdentity =是否自增
3. Program.cs
数据库是PostgreSQL
CodeFirst
1.这段代码定义了一个函数,它可以根据提供的 IServiceProvider 创建一个 IFreeSql 实例,用于与 PostgreSQL 数据库进行交互,并具有 SQL 命令监听和自动同步实体结构到数据库的功能。这个函数通常用于依赖注入容器中,以便在应用程序的不同部分共享和重用数据库连接和配置。
2.用于实现控制反转(Inversion of Control,简称IoC),以减少代码之间的耦合度,提高代码的可测试性和可维护性
3.确保在应用程序启动时执行。这样做的好处是,每当应用程序启动时,都会检查并更新数据库结构,以匹配当前的实体类定义(注: 这是CodeFirst优先 如果是DbFirst优先了解下面代码)
4.增删改查方法(这是封装的方法)
ExecuteAffrows() 这个方法一般使用在 (增(Insert) 删(Delete) 改(Update))
常用执行SQL命令 并返回受影响行数
具体实现(放大查看)