|
系列文章導航:
Linq To Sql進階系列(四)User Define Function篇
Linq To Sql進階系列(五)Store Procedure篇
Linq To Sql進階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細節(jié)上的差別
本系列,或多或少,直接或間接依賴入門系列知識。但,依然追求獨立成章。因本文作者水平有限,文中錯誤難免,敬請讀者指出并諒解。本系列將會和入門并存。
案例
某君被邀為一超市設(shè)計數(shù)據(jù)庫,用來存儲數(shù)據(jù)。該君根據(jù)該超市中實際出現(xiàn)的對象,設(shè)計了Customer, Employee,Order, Product等表,用來保存相應的客戶,員工,訂單,貨品等。太好了,該君很有oo的思想嗎。
如果,你被要求用類及對象,來描述該關(guān)系型數(shù)據(jù),你該如何做呢?在linq推出之前,ADO.NET被用來做數(shù)據(jù)訪問層。而后,程序員需要自己去編寫事務(wù)邏輯層中所出現(xiàn)的類。比如,Customer, Employee,Order, Product等。然后,程序員組裝所需的sql語句,通過ADO.NET,將返回的記錄,來初始化Customer等類的對象。在這里,你已經(jīng)自己動手將Customer表和Customer類關(guān)聯(lián)了起來。從Linq To Sql的設(shè)計來看,它主要是為了解決data!=objects 的問題而產(chǎn)生的。現(xiàn)在,有了Table和Class之間的映射,數(shù)據(jù)和對象之間就可以有一個一一對應的關(guān)系了。
在Linq To Sql之前,在Java領(lǐng)域有Hibernate,在NET領(lǐng)域有NHibernate技術(shù),來實現(xiàn)object/relational 持久和查詢服務(wù)。無論是Hibernate還是NHibernate,其配置復雜,上手時間長,已經(jīng)不能適應快速開發(fā)的需要。而Linq To Sql的推出,恰恰彌補了它們的缺點,徹底降低了程序開發(fā)門檻。
Linq
Linq是Language Integrated Query的縮寫。Linq To Sql是linq中的一部分,其與ADO.NET Orcas的關(guān)系入下。
系列文章導航:
Linq To Sql進階系列(四)User Define Function篇
Linq To Sql進階系列(五)Store Procedure篇
Linq To Sql進階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細節(jié)上的差別
關(guān)系型數(shù)據(jù)的映射
數(shù)據(jù)間的關(guān)系,有2種基本關(guān)系。1: 1 和1: M。查閱northwind數(shù)據(jù)庫中的關(guān)系圖。本文用Order 和Order Detail 表,來闡述其關(guān)系的映射。Order 為訂單,Order Detail 為訂單詳情。其關(guān)系形式為,一條Order記錄對應多條Order Detail 記錄。
你可以在上面產(chǎn)生的code中,找到相應的order類,其中有這么一段

























it知識庫:Linq To Sql進階系列(一)從映射講起,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。