1. LINQ TO SQL 和EF 特點(diǎn): LINQ TO SQL和Entity Framework都是一種包含LINQ功能的ORM 也就是所謂的關(guān)系對(duì)象的映射。其中包括的有DBFrist Code Frist ModeL Frist 三種中方式 來(lái)進(jìn)行和數(shù)據(jù)庫(kù)之間的訪問(wèn)。只是形式不同而已本質(zhì)沒(méi)有什么區(qū)別。都是ORM 之間的轉(zhuǎn)化。最終都是來(lái)進(jìn)行訪問(wèn)底層的數(shù)據(jù)庫(kù)的對(duì)象 和服務(wù)。
簡(jiǎn)單來(lái)說(shuō)LINQ是為了滿足不知道怎么操作數(shù)據(jù)庫(kù)的程序員開(kāi)發(fā)設(shè)計(jì)的,LinQ 可以讓他們以一種面向數(shù)據(jù)對(duì)象的方式來(lái)思考,及持久化他們的數(shù)據(jù)。 當(dāng)然最后來(lái)進(jìn)行訪問(wèn)數(shù)據(jù)庫(kù)的無(wú)論是Oracle SQL Server MySQL MongoDB DB2 等等 都是最終生成 SQL 語(yǔ)句來(lái)進(jìn)行訪問(wèn)數(shù)據(jù)庫(kù)的 和傳統(tǒng)的ADO.NET 直接來(lái)訪問(wèn)數(shù)據(jù)庫(kù)沒(méi)有什么直接的區(qū)別,只是,MicroSoft 將其 CRUD 的一些方法進(jìn)行封裝了而已,讓開(kāi)發(fā)使用起來(lái)更加的方便 開(kāi)發(fā)的速度更加的快速 ,更加的專注于核心的業(yè)務(wù)的開(kāi)發(fā)的開(kāi)發(fā) ,而不是在為這些簡(jiǎn)單的操作而耽擱太多的時(shí)間。可以讓開(kāi)發(fā)節(jié)省更多的開(kāi)發(fā)的時(shí)間 去做更多的事情。
當(dāng)然你使用SQL Server 中的SQL Profile 來(lái)進(jìn)行 查看 其中生成的SQL , 那么問(wèn)題來(lái)了 如果Oracle MySQL DB2 MongoDB 如何進(jìn)行查看生成的SQL 語(yǔ)句 了。那么這個(gè)時(shí)候你需要進(jìn)行 使用nuGet 來(lái)進(jìn)行添加一個(gè)第三方的程序集。MiniProfiler.dll 來(lái)進(jìn)行查看生成的生成的SQL 語(yǔ)句 當(dāng)然關(guān)于如何使用 可以進(jìn)行參考 (http://www.cnblogs.com/jiekzou/p/6374726.html) 博客上面具有介紹我就不一一的說(shuō)了。其中 無(wú)論是LINQ TO SQL 還是 EF 最終的形式 都是通過(guò)DBContent 來(lái)進(jìn)行訪問(wèn)數(shù)據(jù)庫(kù)。
LINQ TO SQL 和Entity Framework 兩者的本質(zhì)的區(qū)別:
EF對(duì)數(shù)據(jù)庫(kù)架構(gòu)和我們查詢的中實(shí)現(xiàn)更好的解耦。使用EF,我們查詢的對(duì)象不再是完全對(duì)應(yīng)數(shù)據(jù)庫(kù)架構(gòu)的C#類,而是更高層的抽象:Entity Data Model。這為我們提供了額外的靈活性其中在性能和簡(jiǎn)單性上面也會(huì)有所損失。 這個(gè)是必須的。 畢竟在解析中性能以及功能性都是有所損失的。
優(yōu)點(diǎn):LINQ TO SQL,是一個(gè)輕量級(jí)的ORM框架,為Microsoft SQL Server數(shù)據(jù)庫(kù)提供快速的應(yīng)用程序開(kāi)發(fā),其優(yōu)點(diǎn)是易于使用、簡(jiǎn)單、高性能。Entity Framework,為創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)和實(shí)體類之間的映射提供了更好的靈活性,它還通過(guò)提供程序支持除了SQL Server之外的第三方數(shù)據(jù)庫(kù)。 例如其中的MySQL Oracle MongoDB DB 2 等等 都是可以映射以及訪問(wèn)的。
EF 6.0 經(jīng)過(guò)Microsoft 的改進(jìn)性能相對(duì)于EF 4.0 確實(shí)提升了不少 其中對(duì)于CRUD 的訪問(wèn)。這意味著我們?cè)谙盗形恼轮械腖INQ TO DB 查詢可以同時(shí)適用于EF 4.0 以下的版本和L2S。而且,這也使得LINQ TO SQL 成為我們學(xué)習(xí)使用LINQ查詢數(shù)據(jù)庫(kù)的理想技術(shù), 因?yàn)楸3种鴮?duì)象和關(guān)系之間的映射的性 那么 在使用變得的非常的簡(jiǎn)單 以及靈活性,并且我們學(xué)習(xí)到的查詢?cè)瓌t和技術(shù)同樣適用于EF。
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式