认得笔者进入公司的时候接触的第一个ORM框架是Entity Framework。为了Entity Framework也看了不些的英文资料(不是笔者装B哦)。正式使用三个月后。笔者对他有一个全面性的认识。我只能说他真的很强大,也很方便。可是我并不是很喜欢他。要问为什么的话,笔者只能说喜欢就是喜欢。不喜欢就是不喜欢。不需要过多的理由。笔者就是这样子的一个人。但是笔者不会忽略他的强大的一面。微软的目标还是老样子——开发简单化。只是在Entity Framework的数据迁移上面笔者不是很喜欢。至少在笔者团队开发过程常常会出现因版本不对导至数据丢失。不管如何笔者对Entity Framework的使用也至少有一年的时间。由于项目以领域驱动(DDD)为核心思想。所以在设计的时候,会用到一些笔者觉得还不错的思想。比如工作单元(Unit Of Work模式)。Entity Framework在早期的时候是不开源码。笔者以前是从事JAVA开发的。这对笔者来讲心态上有一点不能接受(当然这也是笔者个人心态)。终于Entity Framework6开源码了。如果有兴趣的朋友可以下载下来看看(源码地址:https://github.com/aspnet/EntityFramework6)。

第二年时候笔者接触了第二个ORM框架是LinqToDB。笔者不是想强调LinqToDB有多么好。笔者只是觉得他是一个相当不错的开源ORM框架。功能不比EF差,用法上很接近的EF,却比EF来得轻量,而且又多出了自己的特色。所以如果你用EF用得有一点烦了或是觉得EF有一点笨重。想去看看有没有别的ORM框架。不烦试试LinqToDB。

开发环境


对于LinqToDB的dll包在NuGet上可以下载到。只要输入“linq2db”即可。同时也可以在Github上面下载(https://github.com/linq2db/linq2db)。最好选择跟笔者一样子的版本,比较稳定。如下

软件开发工具:Visual Studio 2013

LinqToDB版本:linq2db-Release.1.0.7.4

数据库:SQL Server 2008R

LinqToDB介绍


LinqToDB做为一个轻量级的ORM框架。当然可以让开发人员用面向对象的思想来操作数据库。而且他基于是Linq上面进行开发的。所以一般的Linq操作他也是支持的。同时作者又扩展对应的DML和DDL。比如增加 Insert, Delete, Update, CreateTable, DropTable等方法。相对于EF来讲,LinqToDB显得还是很弱小,没有那么强大。LinqToDB可以说只是把Linq动作变成对应的SQL语句。然后在进行操作数据库。这显然更加接近原生态的做法。也是笔者为什么喜欢的点之一。那么LinqToDB到底能支持多少种数据库。作者在Github上也做也明确指出来。如下。

LinqToDB是如何使用呢?作者在Github上面用了经典的Northwind数据库来讲解。不如笔者也来用一下Northwind数据库进行讲解本系列的一些试验和列子。Northwind数据库是Sql Server 2000数据库的经典设计的数据库。如果不懂的朋友,请百度一下。我们都知道EF有三种模式开发。那么是不是意味着LinqToDB也有可能有这三种开发呢?对于这一点作者也没有很明确的说明。LinqToDB并没有像EF那样子可以根据设计好的类来生成对应的数据库表结构。只能说目前LinqToDB有俩种方式来进行开发——一种原生态的代码,一种根据TT模板。原生态的代码就是数据库建完之后,配置对应的映射,然后自己业务操作。根据TT模板就是用TT模板生成数据库对象映射。这俩种方式笔者会更加的喜欢前一种。

LinqToDB和EF有一个相类似点。他们都有一个关键的类。这个

网友评论