当前位置:首页 > 技术文章 > 正文内容

C#生态下的又一个佳作——FreeSql (O/RM)

zonemu3个月前 (07-17)技术文章32

介绍

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的学习和使用指南

基础

  1. 《学习FreeSql之一:添加数据》
  2. 《学习FreeSql之二:删除数据》
  3. 《学习FreeSql之三:修改数据》
  4. 《学习FreeSql之四:查询数据》
  5. 《仓储层Repository》

进阶

  1. 《CodeFirst模式开发介绍》=》《CodeFirst模式之一:实体特性》《CodeFirst模式之二:FluentApi》《CodeFirst模式之三:自定义特性》《CodeFirst模式之四:类型映射》《CodeFirst模式之五:迁移结构》
  2. 《DbFirst模式开发介绍》

高级

  1. 《数据库事务》
  2. 《使用读写分离》
  3. 《分表分库》
  4. 《多租户》
  5. 《返回数据》
  6. 《优化之:延时加载》
  7. 《优化之:贪婪加载》
  8. 《Expression 表达式函数》
  9. 《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之类的又强很多,并且拥有着无与伦比的性能,值得推荐使用!

相关文章

程序员开发必会之git常用命令,git配置、拉取、提交、分支管理

整理日常开发过程中经常使用的git命令!git配置SSH刚进入项目开发中,我们首先需要配置git的config、配置SSH方式拉取代码,以后就免输入账号密码了!# 按顺序执行 git config -...

在 Spring Boot3 中操作 GitLab API 的全面指南

在当今互联网大厂的后端开发工作中,高效管理代码版本和项目协作至关重要。GitLab 作为强大的版本控制系统,其 API 为开发人员提供了丰富的操作可能性。本文将深入探讨如何在 Spring Boot3...

HTML5设计与制作哪家强?全省50多所高职院校齐聚中山比拼

3月22日下午,2018-2019年广东省职业院校学生专业技能大赛“HTML5交互融媒体内容设计与制作”赛项在中山火炬职业技术学院开幕。全省51所高职院校的52支参赛队伍参加此次大赛。参赛师生将于3月...

UEPlus for HTML5摩尔线程S50 GPU+统信UOS+海光CPU测试

UEPlus for HTML5案例测试。今天给大家带来UEPlus for HTML5的案例测试效果展示。测试环境由客户提供,处理器是海光3250,显卡是摩尔线程S50,8G显存。操作系统是统信V2...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2...

12种JavaScript中最常用的数组操作整理汇总

数组是最常见的数据结构之一,我们需要绝对自信地使用它。在这里,我将列出 JavaScript 中最重要的几个数组常用操作片段,包括数组长度、替换元素、去重以及许多其他内容。1、数组长度大多数人都知道可...