1. 程式人生 > >開始寫博客,學習Linq(3)

開始寫博客,學習Linq(3)

frame 一般來說 開發人員 framework 編程語言 開發語言 工具 語句 並且

為什麽需要Linq?(摘自原文)

讀者會發現LINQ著眼於解決編程語言和數據庫之間廣發存在的不統一問題。

1.常見的問題,使用.NET Framework Class Library(FCL)提供了ADO.NET,開發人員必須顯式地操作數據庫中的表、記錄、列,而當下流行的C#語言卻都是面向對象的。

為了解決上面說的ADO.NET的問題,當然可以使用某些對象/關系映射工具,但這些工具也不是完美的,存在著自身的限制。例如,用來訪問數據庫的工具一般沒法處理其他數據源,比如XML。

並且有一件事情只用微軟能夠做到,而第三方對象/關系映射工具生廠商無法實現,那就是將數據訪問以及查詢功能集成至語言本身中。

所以引入LINQ的動機主要有兩個:一是微軟尚沒有一套數據映射解決方案;二是借助LINQ能夠將查詢集成至開發語言中。

LINQ的設計目的在於,開發人員可以在其熟悉的語言中使用統一的查詢訪問任何數據源。

額,我感覺這部分於前面部分有重復呢,都是使用Linq可以解決的問題。

2.解決理念上的失調

這部分,文字真多了,我看了好久,都有點不耐煩了。具體值得什麽意思呢?

阻抗失調,就是面向對象、關系型數據庫以及xml,表現數據時並不能很好的轉換(個人理解的);

對象/關系映射,首先基礎數據類型就不同,其次是理論來源於不同的數據模型,比例的是關系型數據庫和面向對象的模型,然後又說編程模型也不同,最後提到了封裝也是不同的。

總而言之,就是關系型數據庫和面向對象的類層次結構之間存在著差異。

但是,我們希望將對象模型映射到關系型數據庫中,一般來說,連接面向對象語言和關系型數據庫的一個解決方案是使用對象/關系映射,簡而言之,我們為對象/關系映射程序提供類、數據庫以及映射的配置,隨後映射程序將自動完成余下的工作。比如生成SQL語句、從數據庫中獲取數據並填充至對象中,以及將對象持久化到數據庫中等。

當然,沒有那種解決方案是完美的,且對象/關系映射程序仍有改進的空間。

總結下,無法完美的轉換,可以使用對象/關系或者xml映射 程序工具來解決轉換的問題。當然,也只是書中拋磚引玉,最終的解決方案就是Linq嘍。

這篇應該命名為啰嗦吧。哈哈

開始寫博客,學習Linq(3)