LinqToDB 源码分析——前言】的更多相关文章

记得笔者进入公司的时候接触的第一个ORM框架是Entity Framework.为了Entity Framework也看了不些的英文资料(不是笔者装B哦).正式使用三个月后.笔者对他有一个全面性的认识.我只能说他真的很强大,也很方便.可是我并不是很喜欢他.要问为什么的话,笔者只能说喜欢就是喜欢.不喜欢就是不喜欢.不需要过多的理由.笔者就是这样子的一个人.但是笔者不会忽略他的强大的一面.微软的目标还是老样子--开发简单化.只是在Entity Framework的数据迁移上面笔者不是很喜欢.至少在笔…
当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开IQueryProvider接口.LinqToDB框架跟这俩个接口有关系的有三个类:Table<T>类.ExpressionQuery<T>类.ExpressionQueryImpl<T>类.其中最重要的是ExpressionQuery<T>类.他是Table&l…
Netty源码分析(完整版) 前言 前段时间公司准备改造redis的客户端, 原生的客户端是阻塞式链接, 并且链接池初始化的链接数并不高, 高并发场景会有获取不到连接的尴尬, 所以考虑了用netty长连接解决连接数和阻塞io问题 为此详细阅读了netty源码, 熟悉了netty的各个主要的特性以及疏通各个组件的关联关系, 所以想把这段时间的学习内容, 学习经验毫无保留的分享给大家, 自己提高的同时也帮助大家一起成长 内容中我会把每个知识点通过每个章节去进行剖析, 每个章节也会尽可能的将关键的流程…
笔者简言 笔者在博园里面注册是在二年前.可是那个时候我不知道要写些什么,也怕写出来被别人骂误人子弟.而现在却动笔了是因为前一段时间内我去参加一些大公司的面试,让笔者内心深处留下很多问号.最近三年来我一直从事.NET方面的开发.对于现在的公司我并不是很开心,原因有很多.最重要是公司让我失信于人,心灰意冷.所以我就想出去看看,也就有了面试大公司的事情.其中有一家做跟车相关的技术主管说对我的技术表示怀疑,怕我不能上手JAVA.所以我就想着借助博园来帮我复习记录,同时希望能帮助他人了解Struts2.如…
生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的SQL语句.想要了解这一步部分的功能就必须从三个方面入手.一.Linq To SQL的机制原理.二.如何生成SQL语句.三.设置映射结果. 生成映射表达式 对于Linq To SQL的机制原理在前面的章节里面已经讲过了.这里笔者提出来主要目标是明确什么时候触发.下面的代码不是看前面的获得Query<…
Libevent,libev,libuv三者的区别所在? libevent提供了全套解决方案(事件库,非阻塞IO库,http库,DNS客户端),然而libevent使用全局变量,导致非线程安全.它的watcher结构也过大,把I/O.计时器.信号句柄整合在一起.而且(作者认为)libevent的附加组件如http和dns库都实现不好,且有安全问题. libev因libevent而诞生,对libevent做了改进,避免使用全局变量,拆分watcher等.另外libev去掉了外部库(比如http和d…
LinqToDB框架是一个轻量级的ORM框架.当然,功能上来讲一定比不上Entity Framework的强大.但是在使用上总让笔者感觉有一点Entity Framework的影子.笔者想过可能的原因有俩点:一是DataContext类的作用跟DbContext的作用很接近:二是都实现Linq查询的功能.那么DataContext类到底在LinqToDB框架里面算什么呢?笔者把DataContext类理解为这个框架的上下文--用于驱动整个LinqToDB框架.所以本章也是为DataContext…
我们知道实现了IQueryable<T>接口和IQueryProvider接口就可以使用Linq To SQL的功能.关于如何去实现的话,上一章也为我们引导了一个方向.LinqToDB框架也是顺着这个方向进行的.然而笔者对LinqToDB框架的作者真的很无语.如果有打开过LinqToDB框架源码的朋友,可能会发现很多代码都没有文字说明.这无疑给那些想要深入了解框架的人加大了前进力度.本来笔者以为只是没有相关代码说明不用怕.只要找到对应的文档应该没有什么大问题.于是笔者也跟很多人一样子--去作者…
一.基本概念 Java容器类库的用途是"保存对象",容器库类分为两个不同的分支. 1.Collection.可以保存一个或多个对象,将其保存为一个序列.Collection又可以细分为List(表),Set(集)和Queue(队列).List按照插入顺序保存对象,从索引0开始为每一个插入的对象分配一个索引.Set与List类似,但与List不同的是Set中不能有相同的对象.Queue对象产生的顺序通常与元素的插入顺序相同,一般按照先进先出的规则来删除与访问元素. 2.Map.Map(映…
处理表达式树可以说是所有要实现Linq To SQL的重点,同时他也是难点.笔者看完作者在LinqToDB框架里面对于这一部分的设计之后,心里有一点不知所然.由于很多代码没有文字注解.所以笔者只能接合上下代码来推断出作者大概在做什么.但是有些笔者只知道在做什么却很难推断出作者为什么要这么做.这一部分的主要核心类有俩个--Query<T>类和ExpressionBuilder类.可以用一句话来形容:由Query<T>类起也由Query<T>类落. 处理优化表达树 上一章我…