開始寫部落格,學習Linq(3)

2022-03-10 09:53:32 字數 1261 閱讀 7798

為什麼需要linq?(摘自原文)

讀者會發現linq著眼於解決程式語言和資料庫之間廣發存在的不統一問題。

1.常見的問題,使用.net framework class library(fcl)提供了ado.net,開發人員必須顯式地運算元據庫中的表、記錄、列,而當下流行的c#語言卻都是物件導向的。

為了解決上面說的ado.net的問題,當然可以使用某些物件/關係對映工具,但這些工具也不是完美的,存在著自身的限制。例如,用來訪問資料庫的工具一般沒法處理其他資料來源,比如xml。

並且有一件事情只用微軟能夠做到,而第三方物件/關係對映工具生廠商無法實現,那就是將資料訪問以及查詢功能整合至語言本身中。

所以引入linq的動機主要有兩個:一是微軟尚沒有一套資料對映解決方案;二是借助linq能夠將查詢整合至開發語言中。

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

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

2.解決理念上的失調

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

阻抗失調,就是物件導向、關係型資料庫以及xml,表現資料時並不能很好的轉換(個人理解的);

物件/關係對映,首先基礎資料型別就不同,其次是理論**於不同的資料模型,比例的是關係型資料庫和物件導向的模型,然後又說程式設計模型也不同,最後提到了封裝也是不同的。

總而言之,就是關係型資料庫和物件導向的類層次結構之間存在著差異。

但是,我們希望將物件模型對映到關係型資料庫中,一般來說,連線物件導向語言和關係型資料庫的乙個解決方案是使用物件/關係對映,簡而言之,我們為物件/關係對映程式提供類、資料庫以及對映的配置,隨後對映程式將自動完成餘下的工作。比如生成sql語句、從資料庫中獲取資料並填充至物件中,以及將物件持久化到資料庫中等。

當然,沒有那種解決方案是完美的,且物件/關係對映程式仍有改進的空間。

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

「阻抗失調」讓我們不得不在兩邊中選擇其一作為「主要」的一邊。在linq中微軟公司選擇了程式語言作為主要的一邊,因為修改c#和vb.net要比修改sql或xml容易得多。linq的主要理念是將資料查詢和維護的工作緊密整合至程式語言中。

linq打通了物件、資料庫和xml之間的很多限制,允許開發人員基於相同的語言整合特性操作3種不同領域中的資料。

這樣,我有個問題,linq是不是包含了物件/關係或xml對映 工具的功能了,我之前是分不清linq和ef的。

開始寫部落格,學習Linq

除了為處理資料提供全新的方法之外,linq還代表了一種朝著宣告式以及函式式程式設計發展的轉變。當人們問我為什麼要學習linq時,我會告訴他們linq可以處理xml 關係型資料以及記憶體中的集合,更會提到linq還能幫助開發人員使用宣告式程式設計 延遲執行以及lambda表示式。以上是pdf的原文,l...

開始寫部落格

不知不覺間離開校園快兩年了,在這段時間裡我作為嵌入式軟體設計人員好歹也算是入了門。回想起兩年前,我連什麼是嵌入式也不知道,就想著工作可能就是寫c 罷了。其實當時我最想去的是遊戲行業的軟體開發 確定了工作後我最初的打算是邊工作邊學習遊戲引擎 ai相關,後來發現一來我根本沒有這麼多的精力,二來我學習的耐...

開始寫部落格

寫部落格的時候,總有那麼點顧慮.顧慮著將真實的自己展現出去或無知,或愚昧,或帶著幼稚的文筆.覺得自己的無知將帶來的種種,不過也正是網際網路才能將我們的無知放大,能讓我們思考內在本質的東西.因而,在之前完全沒有這種習慣的情況下.我的部落格將會成為何種形式或內容的定位,都是那沒的不確定 雖然目的是為了記...