网站首页 > 技术文章 正文
介绍
FreeSql 是一个由国人开发并维护的C#生态优秀的ORM框架,至于是ORM(对象关系映射)框架,本文不再赘述。本文简单的来了解一下这款强大的ORM,它又有哪些过人之处!
Github
https://github.com/dotnetcore/FreeSql
特点
支持 .NETCore 2.1+ 或 .NETFramework 4.0+ 或 Xamarin。
- 支持 CodeFirst 迁移,哪怕使用 Access 数据库也支持;
- 支持 DbFirst 从数据库导入实体类,安装实体类生成工具;
- 支持 深入的类型映射,比如pgsql的数组类型;
- 支持 丰富的表达式函数,以及灵活的自定义解析;
- 支持 导航属性一对多、多对多贪婪加载,以及延时加载;
- 支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;
- 支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/人大金仓/神舟通用/翰高/Access;
可以说支持的数据库非常的多,并且还包括部分国产数据库
FreeSql的使用方式很多,在Github上也提供了使用的不同方式案例
开发者优先,以开发者为中心的设计理念,想你所想,亦享你所享。
FreeSql的学习和使用指南
基础
- 《学习FreeSql之一:添加数据》
- 《学习FreeSql之二:删除数据》
- 《学习FreeSql之三:修改数据》
- 《学习FreeSql之四:查询数据》
- 《仓储层Repository》
进阶
- 《CodeFirst模式开发介绍》=》《CodeFirst模式之一:实体特性》《CodeFirst模式之二:FluentApi》《CodeFirst模式之三:自定义特性》《CodeFirst模式之四:类型映射》《CodeFirst模式之五:迁移结构》
- 《DbFirst模式开发介绍》
高级
- 《数据库事务》
- 《使用读写分离》
- 《分表分库》
- 《多租户》
- 《返回数据》
- 《优化之:延时加载》
- 《优化之:贪婪加载》
- 《Expression 表达式函数》
- 《AOP》
安装使用
dotnet add package FreeSql
基础的增删改查
- 查询
var blogs = fsql.Select<Blog>()
.Where(b => b.Rating > 3)
.OrderBy(b => b.Url)
.Skip(100)
.Limit(10) //第100行-110行的记录
.ToList();
- 插入
var blog = new Blog { Url = "http://xxx" };
blog.BlogId = (int)fsql.Insert<Blog>()
.AppendData(blog)
.ExecuteIdentity();
- 更新
fsql.Update<Blog>()
.Set(b => b.Url, "http://sample")
.Where(b => b.Url == "http://sample.")
.ExecuteAffrows();
- 删除
fsql.Delete<Blog>()
.Where(b => b.Url == "http://sample")
.ExecuteAffrows();
更多强大的功能,可以参考官方详细的文档
总结
FreeSql无疑是一个优秀的ORM框架,也是为.net生态添砖加瓦了,不仅仅是Freesql,还有类似的SqlSugar也是一个不错的ORM,它们不像EF那么重,但是功能比Dapper之类的又强很多,并且拥有着无与伦比的性能,值得推荐使用!
- 上一篇: MySQL:count(*)为什么这么慢?
- 下一篇: 京东面试:说说MySQL的架构体系
猜你喜欢
- 2024-11-18 MySQL中多表联合查询与子查询的这些区别,你可能不知道
- 2024-11-18 Mysql实战总结&面试20问
- 2024-11-18 MySQL的备份与还原,非常规备份,全量备份,增量备份
- 2024-11-18 MySQL范围查询与优化
- 2024-11-18 云数据库ClickHouse二级索引 - 最佳实践
- 2024-11-18 分享一个小技巧——mysql统一处理创建时间和更新时间
- 2024-11-18 神奇了,当Mysql查询条件为“>=”时,竟然不走索引?
- 2024-11-18 京东面试:说说MySQL的架构体系
- 2024-11-18 MySQL:count(*)为什么这么慢?
- 2024-11-18 与 MySQL 建立连接
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)