FreeSql.Repository (一)什么是仓储】的更多相关文章

前言 好多年前,DAL 作为数据库访问层,其实是非常流行的命名方式. 不知道从什么时候开始,仓储层成了新的时尚名词.目前了解到,许多人只要在项目中看见 DAL 就会觉得很 low,但是比较可笑的一点是,多数的仓储层与 DAL 实质在做同样的事情. 本文正要介绍这种比较 low 的方式,来现实通用的仓储层. 参考规范 与其他规范标准一样,仓储层也有相应的规范定义.FreeSql.Repository 参考 abp vnext 代码,定义和实现基础的仓储层(CURD),应该算比较通用的方法吧. IB…
欢迎来到<FreeSql.Repository 仓储模式>系列文档,完整文档请前往 wiki 中心:https://github.com/dotnetcore/FreeSql/wiki FreeSql是功能强大的 .NET ORM,支持 .NetFramework 4.0+..NetCore 2.1+.Xamarin 等支持 NetStandard 所有运行平台.支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/神通/人大金仓/翰高…
写在开头 2018年11月的某一天,头脑发热开启了 FreeSql 开源项目之旅,时间一晃已经四年多,当初从舒服区走向一个巨大的坑,回头一看后背一凉.四年时间从无到有,经历了数不清的日夜奋战(有人问我花了多长时间投入,答案:全职x2 + 前两年无休息,以及后面两年的持续投入).今天 FreeSql 已经很强大,感谢第一期.第二期.第N期持续提出建议的网友. FreeSql 现如今已经是一个稳定的版本,主要体现: API 已经确定,不会轻易推翻重作调整,坚持十年不变的原则,让使用者真真正正的不再关…
首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 dotnet add package FreeSql.Repository 可用于:.net framework 4.6+..net core 2.1+ 定义 var fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.Da…
FreeSql FreeSql 是一个功能强大的 NETStandard 库,用于对象关系映射程序(O/RM),提供了 CodeFirst/DbFirst/CURD/表达式函数/读写分离 等基础封装.支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+. 新的查询功能 且先看看实体定义: public class Song { [Column(IsIdentity = true)] public int Id { get; set; } public DateTime?…
FreeSql.Repository 实现了过滤器,它不仅是查询时过滤,连删除/修改/插入时都会进行验证,避免数据安全问题. 过滤器 目前过滤器依附在仓储层实现,每个仓储实例都有 IDataFilter 属性,可利用其完成过滤器管理,它是独立的修改后不影响全局. public interface IDataFilter<TEntity> where TEntity : class { IDataFilter<TEntity> Apply(string filterName, Exp…
FreeSql 项目从2018年11月28日开发至今,版本已发布至 v0.3.12,版本规则:年数-月-日-当日版本号.目前主要包括 FreeSql.FreeSql.Repository 两个项目的维护和开发.这篇文章介绍有哪些贴心功能. 错误:传入的请求具有过多的参数.该服务器支持最多 2100 个参数.请减少参数的数目,然后重新发送该请求. 不知道其他 orm 批量添加实体到 sqlserver 有没有这个错误,FreeSql 不存在. 实体类配置 每款 orm 都会有自己一套实体类配置方法…
FreeSql 是 .NetFramework 4.6+..NetCore 下的 ORM 功能库,提供了丰富的功能,支持五种流行数据库 MySql/SqlServer/PostgreSQL/Oracle/Sqlite. 正常的数据库都支持跨库,然而 Sqlite 默认不支持,或者说支持起来较为麻烦,FreeSql 最关心的是通用.易用性,本文介绍 FreeSql 如何实现 Sqlite 跨库操作. 故事发生在 CodeFirst 自由开发 FreeSql 支持并推荐使用 CodeFirst 方式…
FreeSql 是一个功能强大的对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.5+(QQ群:4336577) FreeSql采用MIT开源协议托管于 github. 特性 [x] 支持 CodeFirst 迁移: [x] 支持 DbFirst 从数据库导入实体类,支持三种模板生成器: [x] 采用 ExpressionTree 高性能读取数据: [x] 支持深入的类型映射,比如pgsql的数组类型,堪称匠心制作: [x] 支持丰富的表达式函数…
分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中.把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,数据库不同实现方式有所不同. 与分表不同,一张大表进行分区后,他还是一张表,不会变成二张表,但是他存放数据的区块变多了.分区的概念,我觉得就想突破磁盘I/O瓶颈,想提高磁盘的读写能力,来增加数据库的性能. 分区实现是比较简单的,建立分区表,根建平常的表没什么区别,并且对开发代码端来说是透明. postgresql10以上的自动分区分表功能: 1.首先创…