LinqToDB框架是一个轻量级的ORM框架。当然,功能上来讲一定比不上Entity Framework的强大。但是在使用上总让笔者感觉有一点Entity Framework的影子。笔者想过可能的原因有俩点:一是DataContext类的作用跟DbContext的作用很接近;二是都实现Linq查询的功能。那么DataContext类到底在LinqToDB框架里面算什么呢?笔者把DataContext类理解为这个框架的上下文——用于驱动整个LinqToDB框架。所以本章也是为DataContext类而来。
框架配置
从源码里面我们可以看到DataContext类有三个构造函数。笔者也是根据这三个构造函数来推断出LinqToDB框架可存在多种启动方式。这里面最大的亮点不是构造函数而是他的参数名。如下代码。
public DataContext(): this(DataConnection.DefaultConfiguration); public DataContext(string configurationString); public DataContext(IDataProvider dataProvider,string connectionString);
上面代码有俩个参数名很重要——configurationString和connectionString。如果把他们都译过来的话,就是配置字符串和连接字符串。相信不难看出configurationString就是跟配置文件画上关系。而connectionString就是传入连接字符串的意思。本质来讲实现DataContext类只有俩种方式:一种是通过配置文件(如App.config)来实现;一种是用IDataProvider接口实例和连接字符串来实现。如果你什么也不传的话,就会使用默认的配置信息来实现。
LinqToDB框架根据.NET配置机制实现自定义配置。跟配置有关系的类都存放在LinqToDB.Configuration命名空间下。如果要实现.NET配置机制的话,就必须要有一个实现ConfigurationSection的类。LinqToDBSection类就是要我们要找的类了。作者用单例模式来设计LinqToDBSection类。相信大家都能明白作者的目地。那么LinqToDB框架是什么时候加载配置信息的呢?
注意:LinqToDBSection有俩个属性一个子点。DefaultConfiguration属性用于指定默认配置字符串。DefaultDataProvider属性用于指定默认数据提供者。还有叫dataProviders的子节点。关于data

