記得筆者進(jìn)入公司的時(shí)候接觸的第一個(gè)ORM框架是Entity Framework。為了Entity Framework也看了不些的英文資料(不是筆者裝B哦)。正式使用三個(gè)月后。筆者對(duì)他有一個(gè)全面性的認(rèn)識(shí)。我只能說他真的很強(qiáng)大,也很方便。可是我并不是很喜歡他。要問為什么的話,筆者只能說喜歡就是喜歡。不喜歡就是不喜歡。不需要過多的理由。筆者就是這樣子的一個(gè)人。但是筆者不會(huì)忽略他的強(qiáng)大的一面。微軟的目標(biāo)還是老樣子——開發(fā)簡(jiǎn)單化。只是在Entity Framework的數(shù)據(jù)遷移上面筆者不是很喜歡。至少在筆者團(tuán)隊(duì)開發(fā)過程常常會(huì)出現(xiàn)因版本不對(duì)導(dǎo)至數(shù)據(jù)丟失。不管如何筆者對(duì)Entity Framework的使用也至少有一年的時(shí)間。由于項(xiàng)目以領(lǐng)域驅(qū)動(dòng)(DDD)為核心思想。所以在設(shè)計(jì)的時(shí)候,會(huì)用到一些筆者覺得還不錯(cuò)的思想。比如工作單元(Unit Of Work模式)。Entity Framework在早期的時(shí)候是不開源碼。筆者以前是從事JAVA開發(fā)的。這對(duì)筆者來講心態(tài)上有一點(diǎn)不能接受(當(dāng)然這也是筆者個(gè)人心態(tài))。終于Entity Framework6開源碼了。如果有興趣的朋友可以下載下來看看(源碼地址:https://github.com/aspnet/EntityFramework6)。

第二年時(shí)候筆者接觸了第二個(gè)ORM框架是LinqToDB。筆者不是想強(qiáng)調(diào)LinqToDB有多么好。筆者只是覺得他是一個(gè)相當(dāng)不錯(cuò)的開源ORM框架。功能不比EF差,用法上很接近的EF,卻比EF來得輕量,而且又多出了自己的特色。所以如果你用EF用得有一點(diǎn)煩了或是覺得EF有一點(diǎn)笨重。想去看看有沒有別的ORM框架。不煩試試LinqToDB。

開發(fā)環(huán)境


對(duì)于LinqToDB的dll包在NuGet上可以下載到。只要輸入“l(fā)inq2db”即可。同時(shí)也可以在Github上面下載(https://github.com/linq2db/linq2db)。最好選擇跟筆者一樣子的版本,比較穩(wěn)定。如下

軟件開發(fā)工具:Visual Studio 2013

LinqToDB版本:linq2db-Release.1.0.7.4

數(shù)據(jù)庫:SQL Server 2008R

LinqToDB介紹


LinqToDB做為一個(gè)輕量級(jí)的ORM框架。當(dāng)然可以讓開發(fā)人員用面向?qū)ο蟮乃枷雭聿僮鲾?shù)據(jù)庫。而且他基于是Linq上面進(jìn)行開發(fā)的。所以一般的Linq操作他也是支持的。同時(shí)作者又?jǐn)U展對(duì)應(yīng)的DML和DDL。比如增加 Insert, Delete, Update, CreateTable, DropTable等方法。相對(duì)于EF來講,LinqToDB顯得還是很弱小,沒有那么強(qiáng)大。LinqToDB可以說只是把Linq動(dòng)作變成對(duì)應(yīng)的SQL語句。然后在進(jìn)行操作數(shù)據(jù)庫。這顯然更加接近原生態(tài)的做法。也是筆者為什么喜歡的點(diǎn)之一。那么LinqToDB到底能支持多少種數(shù)據(jù)庫。作者在Github上也做也明確指出來。如下。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式