【转】NHibernate入门教程
生活随笔
收集整理的這篇文章主要介紹了
【转】NHibernate入门教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開源框架完美組合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文雙語言小型企業網站Demo 摘要: 熱衷于開源框架探索的我發現ASP.NET MVC與jQuery easyUI的組合很給力。由于原先一直受Ext JS框架的licence所苦惱,于是痛下決心尋找一個完全免費的js框架——easyUI。它有完整的demo和強大AIP手冊,使我在開發過程中得心應手。以下是這篇博文Demo程序的演示效果: 解決方案如圖1所示圖1 Domain:領域模型 Dao:持久層 Service:服務層 ...閱讀全文 posted @?2011-08-19 01:53?劉冬.NET 閱讀(40176) |?評論 (150)?編輯 NHibernate從入門到精通系列(10)——多對多關聯映射 摘要: 內容摘要 單向多對多關聯映射 雙向多對多關聯映射 一、單向多對多關聯映射 1.1 多對多關聯映射描述 眾所周知,持久化類的有三種對應關系:“一對一”、“一對多(多對一)”和“多對多”。在項目開發過程中,我們接觸過權限系統。而權限系統中,“用戶”和“角色”的對應關系往往就是“多對多”。 讓我們看一下“多對多”的數據,如圖1.1.1所示:圖1.1.1 從數據中,我們能夠觀察到:多個用戶(User)對應多個角色(Role)。構造“多對多”的關聯關系,我們不僅需要用戶(User)表和角色(Role)表,還需要用戶和角色的關系表。通過這三張表的關系構造了“多對多”的關聯關系。 讓我們看一下代碼: pu.閱讀全文 posted @?2011-03-04 00:26?劉冬.NET 閱讀(8042) |?評論 (32)?編輯 NHibernate從入門到精通系列(9)——一對多關聯映射 摘要: 內容摘要 單向關聯映射 雙向關聯映射 一、單向關聯映射 1.1 單向關聯映射的描述 讓我們回顧一下之前講的《多對一關聯映射》,如圖1.1.1所示,其實“一對多”關聯映射就是“多對一”關聯映射相反的映射。 圖1.1.1 至于“一對多”單向關聯映射的代碼如下:publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}publicvirt.閱讀全文 posted @?2011-03-03 15:36?劉冬.NET 閱讀(6675) |?評論 (7)?編輯 NHibernate從入門到精通系列(8)——一對一關聯映射 摘要: 內容摘要 單向主鍵關聯映射 雙向主鍵關聯映射 唯一外鍵關聯映射 NHibernate的一對一關聯映射有三種,單向主鍵關聯映射、雙向主鍵關聯映射、唯一外鍵關聯映射。 一、單向主鍵關聯映射 我們模擬一個現實情況:學生(Student)和家庭(Family)的關系。在中國,目前實行計劃生育,一個家庭只有一個孩子,孩子上學后就成為了學生。學生和家庭的關系可以認為是一對一的。 讓我們看一下“一對一”的表結構,如圖1.1所示:圖1.1 讓我們看一下“一對一”的實體類和映射文件: publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualst.閱讀全文 posted @?2011-02-25 01:02?劉冬.NET 閱讀(8068) |?評論 (21)?編輯 NHibernate從入門到精通系列(7)——多對一關聯映射 摘要: 內容摘要 多對一關聯映射概括 多對一關聯映射插入和查詢 多對一關聯映配置介紹 一、多對一關聯映射概括 關聯關系是實體類與實體類之間的結構關系,分別為“多對一”、“一對一”、“多對多”。然而“多對一”是怎樣描述的呢?讓我們參考圖1.1所示: 圖1.1 學生表“T_Student”有兩條記錄,它們分別對應了班級表“T_Class”的主鍵值為“1”的同一條記錄。所以這就是“多對一”的使用情景。 讓我們看一下“多對一”持久化類的結構: publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}pub.閱讀全文 posted @?2011-02-24 11:12?劉冬.NET 閱讀(7974) |?評論 (18)?編輯 NHibernate從入門到精通系列(6)——基本映射 摘要: 內容摘要 映射定義概括 基本映射常用標簽 NHibernate的類型 一、映射定義概括 1.1 映射定義(Mapping declaration) 對象和關系數據庫之間的映射是用一個XML文檔(XML document)來定義的。這個映射文檔被設計為易讀的,并且可以手工修改。映射語言是以對象為中心的, 意味著映射是按照持久化類的定義來創建的,而非表的定義。 讓我們打開上節課的映射例子: Product.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlight.閱讀全文 posted @?2011-02-24 00:21?劉冬.NET 閱讀(7725) |?評論 (14)?編輯 NHibernate從入門到精通系列(5)——持久對象的生命周期(下) 摘要: 內容摘要 持久化類 持久化生命周期中的回調 合法性驗證回調 一、持久化類(Persistent Classes) 1.1 什么是持久化類 回答這個問題之前先回答什么是持久化。所謂的持久化就是把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。然而持久化類就是持久化數據的載體,在應用程序中,用來實現業務問題實體的(如,在電子商務應用程序中的Customer和Order) 類就是持久化類。不能認為所有的持久化類的實例都是持久的狀態——一個實例的狀態也可能 是瞬時的或脫管的。 如果這些持久化類遵循一些簡單的規則,NHiberna閱讀全文 posted @?2011-02-18 02:30?劉冬.NET 閱讀(6670) |?評論 (21)?編輯 NHibernate從入門到精通系列(4)——持久對象的生命周期(上) 摘要: 內容摘要 持久對象的狀態的概念 持久對象的狀態Demo 一、持久對象的狀態的概念 在NHibernate中有三種狀態,對它的深入理解,才能更好的理解NHibernate的運行機理,剛開始不太注意這些概念,后來發現它是重要的。對于NHibernate和SQL的關系有更好的理解;對于理解需要持久化的.NET對象,在它的生命周期中三種狀態之間的互相轉化有很大幫助。如圖1.1所示圖1....閱讀全文 posted @?2011-02-17 01:18?劉冬.NET 閱讀(8774) |?評論 (27)?編輯 NHibernate從入門到精通系列(3)——第一個NHibernate應用程序 摘要: 內容摘要 準備工作 開發流程 程序開發 一、準備工作 1.1開發環境 開發工具:VS2008以上,我使用的是VS2010 數據庫:任意關系型數據庫,我使用的是SQL Server 2005 Express 1.2測試環境 nunit 2.5.7 二、開發流程 NHibernate程序的開發流程是: (1).編寫領域類與映射文...閱讀全文 posted @?2011-02-16 00:21?劉冬.NET 閱讀(15940) |?評論 (68)?編輯 NHibernate從入門到精通系列(2)——NHibernate環境與結構體系 摘要: 內容摘要 NHibernate的開發環境 NHibernate的結構體系 NHibernate的配置 一、NHibernate的開發環境 NHibernate的英文官方網站為:http://nhforge.org/ NHibernate目前最新的版本是3.0.0.GA,其下載地址是:http://sourceforge.net/projects/nhibernate/f...閱讀全文 posted @?2011-02-15 00:23?劉冬.NET 閱讀(12115) |?評論 (13)?編輯 NHibernate從入門到精通系列(1)——NHibernate概括 摘要: 內容摘要 NHibernate簡介 ORM簡介 NHibernate優缺點 一、NHibernate簡介 什么是?NHibernate?NHibernate是一個面向.NET環境的對象/關系數據庫映射工具。對象/關系數據庫映射(object/relational mapping,ORM)這個術語表示一種技術,用來把對象模型表示的對象映射到基于SQL的關系模型數據結構中去。...閱讀全文 posted @?2011-02-14 02:04?劉冬.NET 閱讀(15313) |?評論 (26)?編輯 Spring.NET企業架構實踐之 NHibernate + Spring.NET + WCF + Windows服務 + Silverlight 中小企業應用架構完整Demo 摘要: 最近由于工作忙的原因,博客更新的比較慢,在此給園子里的朋友說聲抱歉。于是,我利用周末的時間寫了一份Spring.NET架構的綜合應用,希望這樣的實用型架構能受到大家的歡迎。 一、概括 此Demo使用的開發工具是:VS2010,數據庫任意,Silvelright版本是4.0。Demo分為三層(Tier),數據庫,服務器端,客戶端。其中,服務器端又分為三層(Layer),持久層,服務層,門面層。WCF以Windows服務作為宿主,客戶端使用Silverlight運行瀏覽器之外。圖1 圖1是解決方案中包含的項目。其中,Server文件夾下是服務器端的代碼,Host文件夾下是服務器端的Windo閱讀全文 posted @?2010-10-16 14:03?劉冬.NET 閱讀(16567) |?評論 (57)?編輯 Spring.NET實用技巧5——WCF環境下的NHibernate分布式事務 摘要: 之前實現的NHibernate分布式事務,在WCF環境下遇到的一個難點,是NHibernate的Session管理。然而在我查看log4net生成的調試日志時候驚奇的發現,原來NHibernate的Session不一定需要SessionScope來管理。在遇到事務的時候能自動創建一個Session,在事務關閉的時候能自動關閉Session。SessionScope僅僅是把自動創建的Session合...閱讀全文 posted @?2010-08-12 13:45?劉冬.NET 閱讀(4680) |?評論 (10)?編輯 Spring.NET實用技巧4——NHibernate分布式事務(下) 摘要: 上篇,我們已實現了在同一應用程序下的分布式事務——即多Dao層+同Service層,每個Dao對應一個數據庫,一個Service調用多個Dao。但是在一些特定的子系統較多的項目中,開發人員是無法訪問到某個子系統的數據庫,這就意味著不能通過增加Dao層來實現分布式事務。正如一個銀行的軟件系統,記錄了客戶的賬戶信息和存款金額,北京的分公司和上海的分公司分別有自己的數據庫和軟件系...閱讀全文 posted @?2010-07-30 14:44?劉冬.NET 閱讀(4022) |?評論 (8)?編輯 Spring.NET實用技巧3——NHibernate分布式事務(上) 摘要: 在使用NHibernate作為持久層框架時,多數據庫操作是一個比較難解決的問題。并且很多網友在給我發的eamil中經常談到此問題。由于NHibernate是一種框架,不能像ADO.NET那樣直接用SQL語句操作數據庫,在動態改變DbConnection時比較麻煩,而且NHibernate目前并不完全支持多數據庫,所以實現多數據庫的操作是個棘手的問題。 回想一下,在使用ADO.NET實現多數據庫的...閱讀全文 posted @?2010-07-29 03:09?劉冬.NET 閱讀(5514) |?評論 (16)?編輯 Spring.NET企業架構實踐之 Nhibernate + WCF + ASP.NET MVC + NVelocity 對PetShop4.0重構(三)——持久層 摘要: 什么是持久層?先解釋什么是持久,英文persistence,將內存中的數據固化,保持在物理儲存設備中。然而在企業應用中,往往通過關系型數據庫來完成這一過程。那么持久層的定義是:相對于三層架構中的表示層、業務層而言,專門負責持久化數據的獨立領域。設計模式中的“單一職責”原則確定了分層的目的,說白了,持久層就是專門與數據庫打交道的。如圖1所示圖1 在PetShop4.0中的D...閱讀全文 posted @?2010-06-19 22:08?劉冬.NET 閱讀(6271) |?評論 (15)?編輯 Spring.NET企業架構實踐之 Nhibernate + WCF + ASP.NET MVC + NVelocity 對PetShop4.0重構(二)——領域模型 摘要: 什么是領域模型?領域模型是對領域內的概念類或現實世界中對象的可視化表示。又稱概念模型、領域對象模型、分析對象模型。它專注于分析問題領域本身,發掘重要的業務領域概念,并建立業務領域概念之間的關系。 當我們不再對一個新系統進行數據庫提煉時,取而代之的時面向對象的模型提煉。我們必須大刀闊斧地對業務領域進行細分,將一個復雜的業務領域劃分為多個小的子領域,同時還必須分清重點和次要部分,抓住核心領域概念,實...閱讀全文 posted @?2010-06-18 01:41?劉冬.NET 閱讀(5986) |?評論 (10)?編輯 Spring.NET企業架構實踐之 Nhibernate + WCF + ASP.NET MVC + NVelocity 對PetShop4.0重構(一)——架構設計 摘要: PetShop4.0是微軟針對.NET企業系統推出的一個范例。業界有許多.NET與J2EE之爭,許多數據是從微軟的PetShop和Sun的PetStore而來。這種爭論不可避免帶有濃厚的商業色彩,對于我們開發人員而言,沒有必要過多關注。然而PetShop隨著版本的不斷更新,至現在基于.Net 2.0的PetShop4.0為止,整個設計逐漸變得成熟而優雅,而且有很多可以借鑒之處。PetShop是一個...閱讀全文 posted @?2010-06-17 12:42?劉冬.NET 閱讀(11204) |?評論 (49)?編輯 Spring.NET實用技巧2——NHibernate訪問Oracle數據庫 摘要: 針對大型系統,往往采用Oracle數據庫。這是因為在大數據量的情況下Oracle的優勢比較明顯,而且能夠部署到非Windows環境下,從而彌補.NET程序跨平臺的缺點。但是使用NHibernate訪問Oracle和訪問SQL Server相比來說要略微復雜。 在使用NHibernate訪問Oracle的過程中,我們需要以下幾個步驟: 1.下載并安裝Oracle客戶端http://www.ora...閱讀全文 posted @?2010-05-25 21:21?劉冬.NET 閱讀(6252) |?評論 (15)?編輯 Spring.NET實用技巧1——基于Prevalence下的NHibernate二級緩存使用技巧 摘要: 什么是二級緩存? NHibernate的Session提供了一級緩存。每個Session,對同一個id進行兩次Load,不會發送兩條SQL語句給數據庫,但是Session一但關閉,一級緩存也就失效了。 與Session相對的是,SessionFactory也提供了相應的緩存機制。 SessionFactory緩存可以依據功能和目的的不同而劃分為內置緩存和外置緩存。 SessionFact...閱讀全文 posted @?2010-05-19 03:46?劉冬.NET 閱讀(3205) |?評論 (9)?編輯 Spring.NET學習筆記——目錄(原) 摘要: 目錄 前言 Spring.NET學習筆記——前言 第一階段:控制反轉與依賴注入IoC&DI Spring.NET學習筆記1——控制反轉(基礎篇) Level 200 Spring.NET學習筆記2——環境搭建(基礎篇) Level 200 Spring.NET學習筆記3——實現一...閱讀全文 posted @?2009-11-20 12:36?劉冬.NET 閱讀(41762) |?評論 (43)?編輯 Spring.NET學習筆記19——整合NHibernate和ASP.NET MVC(基礎篇) Level 300 摘要: ASP.NET MVC Framework是微軟官方提供的MVC模式編寫ASP.NET Web應用程序的一個框架。MVC(Model-View-Controller)用于表示一種軟件架構模式.它把軟件系統分為三個基本部分:模型(Model),視圖(View)和控制器(Controller)。 今天帶給大家的就是期待以久的ASP.NET MVC與Spring.NET和NHibernate的組合,視...閱讀全文 posted @?2009-11-19 05:09?劉冬.NET 閱讀(9923) |?評論 (43)?編輯 Spring.NET學習筆記18——整合NHibernate(基礎篇) Level 300 摘要: NHibernate是一個基于.Net的針對關系型數據庫的對象持久化(ORM)類庫。NHibernate來源于非常優秀的基于Java的NHibernate關系型持久化工具。從數據庫底NHibernate來持久化你的.Net 對象到關系型數據庫。NHibernate為你處理這些,遠勝于你不得不寫SQL去從數據庫存取對象。你的代碼僅僅和對象關聯,NHibernate自動產生SQL語句,并確保對象提交到...閱讀全文 posted @?2009-11-18 04:36?劉冬.NET 閱讀(15565) |?評論 (39)?編輯 Spring.NET企業架構實踐之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 綜合應用 摘要: 今晚看了幾篇項目應用的博客感受很深,晚上怎么都睡不著覺。于是乎,下面的博客誕生了 ^-^。 我在想是不是要把我熟悉的Spring.NET框架與別的框架或技術結合起來。由于心血來潮,斗膽在園子里這么多大牛的面前班門弄斧了。長話短說,下面是我項目中用到的技術(圖1):1.JQuery的FlexiGrid插件2.ASP.NET MVC3.NVelocity目前沒有與MVC結合,只是用來簡單的替換模板4...閱讀全文 posted @?2009-11-10 07:28?劉冬.NET 閱讀(20863) |?評論 (52)?編輯 10分鐘搞定Linq to NHibernate(二)——查詢篇 摘要: 有人問過我一個問題,既然用了NHibernate還有必要用Linq嗎?就這個問題,我回答下列幾點: 1.Linq to NHibernate有VS的IDE提示,編譯器可以幫助我提示出錯誤。 2.Linq to NHibernate最大限度的幫我們優化SQL語句,尤其是匿名類的查詢語句和聚合函數的查詢。 3.可以結合Linq加NHibernate各自的延遲加載特性,幫我們在必要的時候生成特定的...閱讀全文 posted @?2009-10-18 23:48?劉冬.NET 閱讀(6264) |?評論 (9)?編輯 10分鐘搞定Linq to NHibernate(一)——環境篇 摘要: 在微軟發布C# 3.0后, LINQ在項目中發揮了重要作用。作為3.0語言身份的象征之一,學習LINQ有為重要。而NHibernate作為運用最廣的ORM框架之一,在大型項目中廣受開發人員的青睞。前不久,NHibernate Forge宣布NHiberante Linq 1.0正式發布了(參考)。Linq to NHibernate有機的在NHibernate結合了Linq的查詢功能,良好的把LI...閱讀全文 posted @?2009-10-16 02:16?劉冬.NET 閱讀(7374) |?評論 (38)?編輯
轉載于:https://www.cnblogs.com/280850911/p/3197102.html
總結
以上是生活随笔為你收集整理的【转】NHibernate入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 骁龙750g是不是双模5G 较骁龙730
- 下一篇: float元素一定要闭合