09 2019 档案
摘要:方法一 方法二 全局转换实体属性名方法,这种只能转属性。 其实是通过Aop方法完成的功能,Aop可以对属性名和类名进行全局拦截处理大小写。 现在添加了6种转换类型 注意:如果属性设置 [Column] 特性且设置了Name,那么该转换方法将不会覆盖这个值
阅读全文
摘要:比如项目内已经使用了其它 orm,如 efcore,这样意味着实体中可能存在 [Key],但它与 FreeSql [Column(IsPrimary = true] 不同。 Q: FreeSql 实体特性为啥这么别扭? A: 为了考虑一致性用法,全部封装在 ColumnAttribute 下,这样用
阅读全文
摘要:FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也是缺点,优点是充分利用数据库特性辅助开发,缺点是切换数据库变得困难。不同程序员的理念可能不太一致,F
阅读全文
摘要:前面有介绍过几篇 CodeFirst 内容文章,有 《(二)自动迁移实体》(https://www.cnblogs.com/FreeSql/p/11531301.html) 《(三)实体特性》(https://www.cnblogs.com/FreeSql/p/11531302.html) 《(四)
阅读全文
摘要:FreeSql AOP 已有的功能介绍,未来为会根据用户需求不断增强。 审计 CRUD 马云说过,996是修福报。对于多数程序员来说,加班是好事。。。起码不是闲人,不会下岗。 当如果因为某个 sql 骚操作耗时很高,没有一个相关的审计功能,排查起来可以说无从下手,福报与你紧紧相随(哈哈)。 Free
阅读全文
摘要:理论知识 分表 - 从表面意思上看呢,就是把一张表分成N多个小表,每一个小表都是完正的一张表。分表后数据都是存放在分表里,总表只是一个外壳,存取数据发生在一个一个的分表里面。分表后单表的并发能力提高了,磁盘I/O性能也提高了。并发能力为什么提高了呢,因为查寻一次所花的时间变短了,如果出现高并发的话,
阅读全文
摘要:FreeSql 支持数据库读写分离,本功能是客户端的读写分离行为,数据库服务器该怎么配置仍然那样配置,不受本功能影响,为了方便描术后面讲到的【读写分离】都是指客户端的功能支持。 各种数据库的读写方案不一,数据库端开启读写分离功能后,读写分离的实现大致分为以下几种: 1、nginx代理,配置繁琐且容易
阅读全文
摘要: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
阅读全文
摘要:1、外部事务 在外部开启事务的场景,可使用 WithTransaction 传入事务对象。 await fsql.Update<xxx>() .WithTransaction(指定事务) .Set(a => a.Clicks + 1) .ExecuteAffrowsAsync(); ISelect、
阅读全文
摘要:有时候,我们希望将写好的 sql 语句,甚至是存储过程进行查询,虽然效率不高(有时候并不是效率至上)。 巧用AsTable var sql = fsql.Select<User>() .AsTable((a, b) => "(select * from user where clicks > 10)
阅读全文
摘要:1、导航属性 ManyToOne ManyToOne 导航属性通过 ToList(includeNestedMembers: false) 加载,参数说明: false: 返回 2级 Join 的导航数据(默认); true: 返回所有层级深度 Join 的导航数据(未使用的导航数据不会返回); S
阅读全文
摘要:FreeSql 支持导航属性延时加载,即当我们需要用到的时候才进行加载(读取),支持1对1、多对1、1对多、多对多关系的导航属性。 当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们希望使用延迟加载来实现,这样不仅加快的了 读取的效率,同时也避免加载不需要的数据。延迟加载通常用于f
阅读全文
摘要:原本不支持 IQueryable 主要出于使用习惯的考虑,编写代码的智能总会提示出现一堆你不想使用的方法(对不起,我有强迫症),IQueryable 自身提供了一堆没法实现的方法,还有外部入侵的扩展方法,严重影响编码体验。如下图: v1.4.0+ 版本请使用以下命令安装(老版本不需要安装): dot
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Passwor
阅读全文
摘要:适合喜欢使用 dto 的朋友,很多时候 entity 与 dto 属性名相同,属性数据又不完全一致。 有的人先查回所有字段数据,再使用 AutoMapper 映射。 我们的功能是先映射,再只查询映射好的字段,节省了io性能。 Select<Tag>().Limit(10).ToList(a => n
阅读全文
摘要:FreeSql 采用 ExpressionTree 优化读取速读,如果懂技术的你一定知道 .NETCore 技术下除了原生代码,最快就是 Emit 和 ExpressionTree。项目在初期使用的反射+缓存,虽然 .NETCore 优化了反射性能,但经过与Dapper性能测试对比之后,发现仍然有一
阅读全文
摘要:WhereCascade 多表查询时非常方便,有了它可以很轻松的完成类型软删除,租户条件的功能。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Dat
阅读全文
摘要:多表查询,常用的有联表 LeftJoin/InnerJoin/RightJoin ,这三个方法在上篇文章已经介绍过。 除了联表,还有子查询 Where Exists,和 Select 子表: static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .U
阅读全文
摘要:导航属性是 FreeSql 的特色功能之一,可通过约定配置、或自定义配置对象间的关系。 导航属性有 OneToMany, ManyToOne, ManyToMany, OneToOne, Parent 五种配置关系。 有了导航属性,多表查询会非常方便,lambda 表达式中直接使用导航对象点点点,舒
阅读全文
摘要:FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Sou
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Passwor
阅读全文
摘要:FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Sou
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实
阅读全文
摘要:static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .UseAutoSyncStructure(true) //自动同步实
阅读全文
摘要:FreeSql提供丰富的数据库更新功能,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, c
阅读全文
摘要:删除是一个非常危险的操作,FreeSql对删除支持并不强大,默认仅支持单表、且有条件的删除方法。 若Where条件为空的时候执行,仅返回0或默认值,不执行真正的SQL删除操作。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConne
阅读全文
摘要:插入数据时指定列,未被指定的列将被忽略。 var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMo
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:FreeSql 提供使用 FluentApi, 在外部配置实体的数据库特性,FluentApi 的方法命名与 Attribute 保持一致,如下: fsql.CodeFirst .ConfigEntity<TestFluenttb1>(a => { a.Name("table1"); a.Prope
阅读全文
摘要:v1.4.0+ 已自动识别 EFCore 实体特性 Key/Required/NotMapped/MaxLength/StringLength/DatabaseGenerated/Table/Column 主键(Primary Key) class Topic { [Column(IsPrimary
阅读全文
摘要:FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也是缺点,优点是充分利用数据库特性辅助开发,缺点是切换数据库变得困难。不同程序员的理念可能不太一致,作
阅读全文
摘要:欢迎来到《FreeSql 快速入门》系列文档,完整文档请前往 wiki 中心:https://github.com/dotnetcore/FreeSql/wiki FreeSql是功能强大的 .NET ORM,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin 等
阅读全文
摘要:前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章 "《ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE》" ,您可以先阅读上一篇文章内容了解来龙去脉,再回到这里观看。 我个人非常喜欢小规模团队的"单打独斗",有的时候即使
阅读全文

浙公网安备 33010602011771号