LinqToDB 源码分析——DataContext类】的更多相关文章

LinqToDB框架是一个轻量级的ORM框架.当然,功能上来讲一定比不上Entity Framework的强大.但是在使用上总让笔者感觉有一点Entity Framework的影子.笔者想过可能的原因有俩点:一是DataContext类的作用跟DbContext的作用很接近:二是都实现Linq查询的功能.那么DataContext类到底在LinqToDB框架里面算什么呢?笔者把DataContext类理解为这个框架的上下文--用于驱动整个LinqToDB框架.所以本章也是为DataContext…
当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开IQueryProvider接口.LinqToDB框架跟这俩个接口有关系的有三个类:Table<T>类.ExpressionQuery<T>类.ExpressionQueryImpl<T>类.其中最重要的是ExpressionQuery<T>类.他是Table&l…
记得笔者进入公司的时候接触的第一个ORM框架是Entity Framework.为了Entity Framework也看了不些的英文资料(不是笔者装B哦).正式使用三个月后.笔者对他有一个全面性的认识.我只能说他真的很强大,也很方便.可是我并不是很喜欢他.要问为什么的话,笔者只能说喜欢就是喜欢.不喜欢就是不喜欢.不需要过多的理由.笔者就是这样子的一个人.但是笔者不会忽略他的强大的一面.微软的目标还是老样子--开发简单化.只是在Entity Framework的数据迁移上面笔者不是很喜欢.至少在笔…
本章简言 上一章讲到关于拦截器的机制的知识点,让我们对拦截器有了一定的认识.我们也清楚的知道在执行用户action类实例之前,struts2会先去执行当前action类对应的拦截器.而关于在哪里执行action类实例,笔者根本就没有详细的讲到.更多只是几笔带过而以.虽然在<Struts2 源码分析——Action代理类的工作>章节里面也讲到过关于DefaultActionInvocation类的一些作用.提过DefaultActionInvocation类会去执行action类实例.但是还是没…
本章简言 上一章笔者讲到关于DefaultActionInvocation类执行action的相关知识.我们清楚的知道在执行action类实例之后会相关处理返回的结果.而这章笔者将对处理结果相关的内容进行讲解.笔者叫他们为Result类实例.如果还记得在上一章最后笔者说可以把处理action执行的结果简单的理解处理网页.而且还用红色标识.实际是处理跟表现层有关的内容.而不是页面上的内容.如HTML.即是MVC里面的C到V的内容.当然这还关系到配置文件里面的result元素节点信息.如strtus…
生成SQL语句的功能可以算是LinqToDB框架的最后一步.从上一章中我们可以知道处理完表达式树之后,相关生成SQL信息会被保存在一个叫SelectQuery类的实例.有了这个实例我们就可以生成对应的SQL语句.想要了解这一步部分的功能就必须从三个方面入手.一.Linq To SQL的机制原理.二.如何生成SQL语句.三.设置映射结果. 生成映射表达式 对于Linq To SQL的机制原理在前面的章节里面已经讲过了.这里笔者提出来主要目标是明确什么时候触发.下面的代码不是看前面的获得Query<…
我们知道实现了IQueryable<T>接口和IQueryProvider接口就可以使用Linq To SQL的功能.关于如何去实现的话,上一章也为我们引导了一个方向.LinqToDB框架也是顺着这个方向进行的.然而笔者对LinqToDB框架的作者真的很无语.如果有打开过LinqToDB框架源码的朋友,可能会发现很多代码都没有文字说明.这无疑给那些想要深入了解框架的人加大了前进力度.本来笔者以为只是没有相关代码说明不用怕.只要找到对应的文档应该没有什么大问题.于是笔者也跟很多人一样子--去作者…
先贴上Application这个类的源码. class Application(httputil.HTTPServerConnectionDelegate): """A collection of request handlers that make up a web application. Instances of this class are callable and can be passed directly to HTTPServer to serve the a…
处理表达式树可以说是所有要实现Linq To SQL的重点,同时他也是难点.笔者看完作者在LinqToDB框架里面对于这一部分的设计之后,心里有一点不知所然.由于很多代码没有文字注解.所以笔者只能接合上下代码来推断出作者大概在做什么.但是有些笔者只知道在做什么却很难推断出作者为什么要这么做.这一部分的主要核心类有俩个--Query<T>类和ExpressionBuilder类.可以用一句话来形容:由Query<T>类起也由Query<T>类落. 处理优化表达树 上一章我…
LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发现本系列在内容上的引导显得格外的生硬.思考在三最后还是决定在讲解LinqToDB框架之前来一章过度文. Linq查询的原理 我们在学习Linq的时候会见到一些很常见的关键词语.比如Linq To SQL.Linq To Objects.Linq To XML等.事实这些一般都是根据不同的数据源来进行…