Loading

摘要: 关于无限级分类 第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。 这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层。 分析:通 阅读全文
posted @ 2020-06-28 06:41 FreeSql 阅读(2996) 评论(20) 推荐(37) 编辑
摘要: 前言 京人大金仓信息技术股份有限公司(以下简称“人大金仓”)是具有自主知识产权的国产数据管理软件与服务提供商。人大金仓由中国人民大学一批最早在国内开展数据库教学、科研、开发的专家于1999年发起创立,先后承担了国家“863”、“核高基”等重大专项,研发出了具有国际先进水平的大型通用数据库产品。201 阅读全文
posted @ 2020-05-28 18:21 FreeSql 阅读(1674) 评论(2) 推荐(3) 编辑
摘要: 1、创建项目 我们以 console 类型项目试验 插入、删除、更新、查询 等功能,创建控制台项目,使用命令: dotnet new console dotnet add package FreeSql.Provider.MySql dotnet add package FreeSql.Reposi 阅读全文
posted @ 2020-04-22 20:58 FreeSql 阅读(2095) 评论(0) 推荐(1) 编辑
摘要: 1、创建项目 我们以 console 类型项目试验 插入、删除、更新、查询 等功能,创建控制台项目,使用命令: dotnet new console dotnet add package FreeSql.Provider.Sqlite dotnet add package FreeSql.Repos 阅读全文
posted @ 2020-04-18 00:44 FreeSql 阅读(3686) 评论(8) 推荐(7) 编辑
摘要: FreeSql 以 MIT 开源协议托管于 github: "https://github.com/2881099/FreeSql" IFreeSql 作为 ORM 顶级对象,没有设置 NameSpace(命名空间),作者的用意是不想使用者在 .cs 文件顶部,多出一堆不必要的 using Free 阅读全文
posted @ 2020-03-13 21:05 FreeSql 阅读(1116) 评论(1) 推荐(2) 编辑
摘要: 第一步:定义注入类型 第二步:注入 CurdAfterLog 第三步:添加 CurdAfter 事件 便于管理 fsql.Aop.CurdAfter 应该和 new FreeSqlBuilder()..Build() 代码放在一起,并且该事件只绑定一次 第四步:在 Controller 中测试 阅读全文
posted @ 2020-03-09 10:23 FreeSql 阅读(1740) 评论(0) 推荐(4) 编辑
摘要: FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin 等支持 NetStandard 所有运行平台。 以 MIT 开源协议托管于 github: "https://github.com/2881099/Fre 阅读全文
posted @ 2020-03-08 13:20 FreeSql 阅读(1585) 评论(0) 推荐(1) 编辑
摘要: 前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等服务。多年来,达梦公司始终坚持原始创新、独立研发,目前已掌握数据管理与数据分析领域的核心前沿 阅读全文
posted @ 2019-12-13 15:13 FreeSql 阅读(2257) 评论(6) 推荐(5) 编辑
摘要: 方法一 方法二 全局转换实体属性名方法,这种只能转属性。 其实是通过Aop方法完成的功能,Aop可以对属性名和类名进行全局拦截处理大小写。 现在添加了6种转换类型 注意:如果属性设置 [Column] 特性且设置了Name,那么该转换方法将不会覆盖这个值 阅读全文
posted @ 2019-09-22 22:03 FreeSql 阅读(1401) 评论(1) 推荐(2) 编辑
摘要: 比如项目内已经使用了其它 orm,如 efcore,这样意味着实体中可能存在 [Key],但它与 FreeSql [Column(IsPrimary = true] 不同。 Q: FreeSql 实体特性为啥这么别扭? A: 为了考虑一致性用法,全部封装在 ColumnAttribute 下,这样用 阅读全文
posted @ 2019-09-17 09:16 FreeSql 阅读(2961) 评论(3) 推荐(2) 编辑
摘要: FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也是缺点,优点是充分利用数据库特性辅助开发,缺点是切换数据库变得困难。不同程序员的理念可能不太一致,F 阅读全文
posted @ 2019-09-17 09:12 FreeSql 阅读(4212) 评论(23) 推荐(4) 编辑
摘要: 前面有介绍过几篇 CodeFirst 内容文章,有 《(二)自动迁移实体》(https://www.cnblogs.com/FreeSql/p/11531301.html) 《(三)实体特性》(https://www.cnblogs.com/FreeSql/p/11531302.html) 《(四) 阅读全文
posted @ 2019-09-17 09:10 FreeSql 阅读(6730) 评论(1) 推荐(2) 编辑
摘要: FreeSql AOP 已有的功能介绍,未来为会根据用户需求不断增强。 审计 CRUD 马云说过,996是修福报。对于多数程序员来说,加班是好事。。。起码不是闲人,不会下岗。 当如果因为某个 sql 骚操作耗时很高,没有一个相关的审计功能,排查起来可以说无从下手,福报与你紧紧相随(哈哈)。 Free 阅读全文
posted @ 2019-09-17 08:56 FreeSql 阅读(5285) 评论(6) 推荐(2) 编辑
摘要: 理论知识 分表 - 从表面意思上看呢,就是把一张表分成N多个小表,每一个小表都是完正的一张表。分表后数据都是存放在分表里,总表只是一个外壳,存取数据发生在一个一个的分表里面。分表后单表的并发能力提高了,磁盘I/O性能也提高了。并发能力为什么提高了呢,因为查寻一次所花的时间变短了,如果出现高并发的话, 阅读全文
posted @ 2019-09-17 08:38 FreeSql 阅读(7297) 评论(2) 推荐(2) 编辑
摘要: FreeSql 支持数据库读写分离,本功能是客户端的读写分离行为,数据库服务器该怎么配置仍然那样配置,不受本功能影响,为了方便描术后面讲到的【读写分离】都是指客户端的功能支持。 各种数据库的读写方案不一,数据库端开启读写分离功能后,读写分离的实现大致分为以下几种: 1、nginx代理,配置繁琐且容易 阅读全文
posted @ 2019-09-17 08:35 FreeSql 阅读(4421) 评论(3) 推荐(3) 编辑
摘要: In查询 var t1 = fsql.Select<T>() .Where(a => new[] { 1, 2, 3 }.Contains(a.Id)) .ToList(); //SELECT .. FROM .. //WHERE (a.`Id` in (1,2,3)) 已优化,防止 where i 阅读全文
posted @ 2019-09-17 08:32 FreeSql 阅读(6771) 评论(1) 推荐(2) 编辑
摘要: 1、外部事务 在外部开启事务的场景,可使用 WithTransaction 传入事务对象。 await fsql.Update<xxx>() .WithTransaction(指定事务) .Set(a => a.Clicks + 1) .ExecuteAffrowsAsync(); ISelect、 阅读全文
posted @ 2019-09-17 08:30 FreeSql 阅读(8969) 评论(3) 推荐(4) 编辑
摘要: 有时候,我们希望将写好的 sql 语句,甚至是存储过程进行查询,虽然效率不高(有时候并不是效率至上)。 巧用AsTable var sql = fsql.Select<User>() .AsTable((a, b) => "(select * from user where clicks > 10) 阅读全文
posted @ 2019-09-17 08:28 FreeSql 阅读(7407) 评论(1) 推荐(2) 编辑
摘要: 1、导航属性 ManyToOne ManyToOne 导航属性通过 ToList(includeNestedMembers: false) 加载,参数说明: false: 返回 2级 Join 的导航数据(默认); true: 返回所有层级深度 Join 的导航数据(未使用的导航数据不会返回); S 阅读全文
posted @ 2019-09-17 08:23 FreeSql 阅读(6357) 评论(4) 推荐(2) 编辑
摘要: FreeSql 支持导航属性延时加载,即当我们需要用到的时候才进行加载(读取),支持1对1、多对1、1对多、多对多关系的导航属性。 当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们希望使用延迟加载来实现,这样不仅加快的了 读取的效率,同时也避免加载不需要的数据。延迟加载通常用于f 阅读全文
posted @ 2019-09-17 08:16 FreeSql 阅读(2887) 评论(1) 推荐(2) 编辑
摘要: 原本不支持 IQueryable 主要出于使用习惯的考虑,编写代码的智能总会提示出现一堆你不想使用的方法(对不起,我有强迫症),IQueryable 自身提供了一堆没法实现的方法,还有外部入侵的扩展方法,严重影响编码体验。如下图: v1.4.0+ 版本请使用以下命令安装(老版本不需要安装): dot 阅读全文
posted @ 2019-09-17 08:15 FreeSql 阅读(5690) 评论(10) 推荐(2) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Passwor 阅读全文
posted @ 2019-09-17 08:13 FreeSql 阅读(7506) 评论(8) 推荐(2) 编辑
摘要: 适合喜欢使用 dto 的朋友,很多时候 entity 与 dto 属性名相同,属性数据又不完全一致。 有的人先查回所有字段数据,再使用 AutoMapper 映射。 我们的功能是先映射,再只查询映射好的字段,节省了io性能。 Select<Tag>().Limit(10).ToList(a => n 阅读全文
posted @ 2019-09-17 08:10 FreeSql 阅读(7283) 评论(4) 推荐(1) 编辑
摘要: FreeSql 采用 ExpressionTree 优化读取速读,如果懂技术的你一定知道 .NETCore 技术下除了原生代码,最快就是 Emit 和 ExpressionTree。项目在初期使用的反射+缓存,虽然 .NETCore 优化了反射性能,但经过与Dapper性能测试对比之后,发现仍然有一 阅读全文
posted @ 2019-09-17 08:05 FreeSql 阅读(9067) 评论(2) 推荐(1) 编辑
摘要: WhereCascade 多表查询时非常方便,有了它可以很轻松的完成类型软删除,租户条件的功能。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Dat 阅读全文
posted @ 2019-09-17 08:04 FreeSql 阅读(4790) 评论(1) 推荐(1) 编辑
摘要: 多表查询,常用的有联表 LeftJoin/InnerJoin/RightJoin ,这三个方法在上篇文章已经介绍过。 除了联表,还有子查询 Where Exists,和 Select 子表: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .U 阅读全文
posted @ 2019-09-17 07:56 FreeSql 阅读(11506) 评论(3) 推荐(1) 编辑
摘要: 导航属性是 FreeSql 的特色功能之一,可通过约定配置、或自定义配置对象间的关系。 导航属性有 OneToMany, ManyToOne, ManyToMany, OneToOne, Parent 五种配置关系。 有了导航属性,多表查询会非常方便,lambda 表达式中直接使用导航对象点点点,舒 阅读全文
posted @ 2019-09-17 07:45 FreeSql 阅读(9673) 评论(14) 推荐(4) 编辑
摘要: FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Sou 阅读全文
posted @ 2019-09-17 07:39 FreeSql 阅读(13820) 评论(1) 推荐(4) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Passwor 阅读全文
posted @ 2019-09-17 07:31 FreeSql 阅读(7996) 评论(4) 推荐(1) 编辑
摘要: FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Sou 阅读全文
posted @ 2019-09-17 07:29 FreeSql 阅读(27492) 评论(13) 推荐(2) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实 阅读全文
posted @ 2019-09-17 07:25 FreeSql 阅读(7470) 评论(1) 推荐(1) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实 阅读全文
posted @ 2019-09-17 07:20 FreeSql 阅读(2751) 评论(1) 推荐(3) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实 阅读全文
posted @ 2019-09-17 07:16 FreeSql 阅读(6210) 评论(1) 推荐(1) 编辑
摘要: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实 阅读全文
posted @ 2019-09-17 07:11 FreeSql 阅读(9834) 评论(1) 推荐(2) 编辑
摘要: FreeSql提供丰富的数据库更新功能,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, c 阅读全文
posted @ 2019-09-17 07:06 FreeSql 阅读(12451) 评论(3) 推荐(2) 编辑
摘要: 删除是一个非常危险的操作,FreeSql对删除支持并不强大,默认仅支持单表、且有条件的删除方法。 若Where条件为空的时候执行,仅返回0或默认值,不执行真正的SQL删除操作。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConne 阅读全文
posted @ 2019-09-17 06:57 FreeSql 阅读(6707) 评论(1) 推荐(2) 编辑
摘要: 插入数据时指定列,未被指定的列将被忽略。 var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMo 阅读全文
posted @ 2019-09-17 06:50 FreeSql 阅读(3835) 评论(2) 推荐(1) 编辑
摘要: var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size 阅读全文
posted @ 2019-09-17 06:47 FreeSql 阅读(4559) 评论(1) 推荐(2) 编辑
摘要: var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size 阅读全文
posted @ 2019-09-17 06:30 FreeSql 阅读(10150) 评论(7) 推荐(3) 编辑
摘要: var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size 阅读全文
posted @ 2019-09-17 06:25 FreeSql 阅读(13074) 评论(1) 推荐(4) 编辑