FreeSql v0.5.x 功能介绍
弱类型
之前在操作实体时,必须传统泛型参数,现在可以实现弱类型实体的操作。以 Repository 为例:
var repos = fsql.GetGuidRepository<object>();
repos.AsType(typeof(AddUpdateInfo));
var item = new AddUpdateInfo();
repos.Insert(item);
item.Clicks += 1;
repos.InsertOrUpdate(item);
var item2 = repos.Find(item.Id) as AddUpdateInfo;
Assert.Equal(item.Clicks, item2.Clicks);
repos.DataFilter.Apply("xxx", a => (a as AddUpdateInfo).Clicks == 11);
Assert.Null(repos.Find(item.Id));
然后呢,DbContext 也支持同样的操作。
ToList & Mapper
现在支持 ToList(a => new Dto()) 这样的简单数据映射,然后它会依次序匹配 LeftJoin/InnerJoin/RightJoin 的实体。
WhereDynamic 动态条件
支持传入动态对象如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}。
ToList(true) 贪婪加载
以前 .ToList() 会加载两级Join对象;
现在 ISelect.ToList(includeNestedMembers: true) 贪婪加载所有 LeftJoin/InnerJoin/RightJoin 导航数据,不论对象的层级;
IAdo.Query 多个结果集
var result = fsql.Ado.Query<T1, T2>("select * from t1; select * from t2");
其他
v0.5.3
- 增加 ISelect.ToList(true) 贪婪加载 LeftJoin/InnerJoin/RightJoin 导航数据;
- 增加 IAdo.Query<T1, T2 ...> 多结果集查询;
- 增加 IAdo.ExecuteDataSet 多结果集查询;
- 优化 未设置实体属性 set 的将被自动过滤 IsIgnore;
v0.5.2
- 修复 SqlServer 工作单元 bug,需要同时设置 SqlCommand.Connection + Transaction;
- 补充 测试与支持联合主键的自增;
v0.5.1(五一版)
增加 ISelect/IInsert/IUpdate/IDelete.AsType 实现弱类型curd,如:Select<object>().AsType(实体类型);
补充 ISelect.From<T2>;
补充 ExpressionTree 单元测试;
优化 ToList(a => new Dto()),会按优先级查询 Join 实体属性;
补充 IDelete/ISelect/IUpdate WhereDynamic 方法,实现 dywhere 条件;
修复 WhereObject 内部方法,当开启 Lazy 延时属性时,并且传递实体查询时条件无效;
补充 实现表达式转换类型的解析,如:Select<object>().Where(a => (a as 实体类型).Id == 0);
完善 ExpressionTree 基础数据类型 TryParse 使用与单元测试;
优化 ManyToMany 中间实体未配置主键时,自动配置联合主键;
修复 Expression.And 的使用问题;
修复 IsIgnore 过滤字段后,查询的错误;
修复 ISelect2 以上 WhereIf 条件作用反了 bug;
FreeSql v0.5.x 功能介绍的更多相关文章
- 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览
年关将至,首页技术含量文章真是越来越少,理解大家盼着放假过年,哥们我何尝不是,先给大家拜个早年. 兄弟我从11月底发了神经,开启了 ORM 功能库的开发之旅,历时两个月编码和文档整理,目前预览版本更新 ...
- .NETCore 新型 ORM 功能介绍
简介 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+. 定义 IFre ...
- FreeSql v0.11 几个实用功能说明
FreeSql 开源发布快一年了,立志成为 .Net 平台方便好用的 ORM,仓库地址:https://github.com/2881099/FreeSql 随着不断的迭代更新,越来越稳定,也越来越强 ...
- .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍
Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...
- 微信小程序产品定位及功能介绍
产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...
- 带你走近AngularJS - 基本功能介绍
带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自定义指令 ------------- ...
- MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览
之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...
- Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?
Joomla 软件功能介绍: Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
随机推荐
- 请求转发(forward)和重定向(redirect)的区别
转发不会改变地址栏,重定向会. 转发是请求一次,重定向请求两次. 转发过程中只有一个request对象产生,重定向是两个. 转发不能转发到站外,重定向可以发送到站外. 重定向的第2个请求的请求方式是什 ...
- linux下svn(subversion)服务端添加工程及配置权限
linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...
- JavaScirpt的this指向 apply().call(),bind()个人笔记
写在前头: 本站内容为个人学习记录,纯属个人观点,不喜勿喷,欢迎指正! 笔记记录缘由:JavaScript的流行趋势已经势不可挡,衍生的AngularJs,Node.js,BootStrmp中小企业的 ...
- ORC文字识别软件破解版
下载地址:http://pan.baidu.com/s/1bnCiXdl 点击 然后可以免费用了ABBYY了!!
- Libevent教程001: 简介与配置
本文内容大致翻译自 libevent-book, 但不是照本翻译. 成文时, libevent最新的稳定版为 2.1.8 stable. 即本文如无特殊说明, 所有描述均以 2.1.8 stable ...
- 微信公众号 模板消息 定时推送 java
前提:业务需要,要做一个关于月报的微信消息推送.即每个月定时自动发送一条消息 给关注 公众号的人 用的是 公众号的测试账号(实际开发需要认证的公众号) 微信官网的 模板消息接口规则: 1.所有服务号都 ...
- 剑指Offer常见问题整理
1 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.(来自牛客网,剑指offer) ...
- javascript 正则表达式补充
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- cassandra 在window上的demo
Cassandra window使用 1. 下载:http://cassandra.apache.org/download/. 2. 解压后,bin目录下,cassan ...
- Linux用户和组管理,添加修改用户,添加修改组,加入组,移除组
1.安全介绍3A Authentication: 认证,用户名和对应口令 Authorization: 授权,不同用户权限不同 Accouting/Audition: 审计 2. 所属者和所属组 us ...