Nhibernate的介紹

来源:http://www.cnblogs.com/cnwisdom/archive/2016/05/25/5525949.html
-Advertisement-
Play Games

1、介紹的內容 1、感謝園友的文章支持 by 李永京 by wolfy 2、Nhibernate的框架介紹 3、Nhibernate的架構介紹 4、Nhibernate映射方法介紹(該點自己也存在一定的疑問,如果有知道的園友請指正) 2、參考文章 由於英語一向都不太好,雖然最近在改進ing,可是讓我 ...


1、介紹的內容

     1、感謝園友的文章支持 by 李永京 by wolfy

     2、Nhibernate的框架介紹

     3、Nhibernate的架構介紹

     4、Nhibernate映射方法介紹(該點自己也存在一定的疑問,如果有知道的園友請指正)

 

2、參考文章

     由於英語一向都不太好,雖然最近在改進ing,可是讓我看英文的文檔還是會存在一定的問題,所以這裡非常感謝之前園友對NHibernate的研究並且記錄,以下是我主要參考的兩位園友的文章

     http://www.cnblogs.com/lyj/archive/2008/10/10/1308267.html     李永京大神的文章    

     http://www.cnblogs.com/wolf-sun/p/4138918.html                       wolfy的文章

3、項目準備

     VS2013、oracle11g、Nhibernate

4、Nhibernate的框架介紹

     NHibernate是一個面向.NET環境的對象/關係資料庫映射工具。對象/關係資料庫映射(object/relational mapping,ORM)這個術語表示一種技術,用來把對象模型表示的對象映射到基於SQL的關係模型數據結構中去。

     在今日的企業環境中,把面向對象的軟體和關係資料庫一起使用可能是相當麻煩和浪費時間的。而NHibernate不僅僅管理.NET類到資料庫表的映射(包括.NET 數據類型到SQL數據類型的映射),還提供數據查詢和獲取數據的方法,可以大幅度減少開發時人工使用SQL和ADO.NET處理數據的時間。

  NHibernate的目標主要是用於與數據持久化相關的編程任務,能夠使開發人員從原來枯燥的SQL語句的編寫中解放出來,解放出來的精力可以讓開發人員投入到業務邏輯的實現上。對於以數據為中心的程式,開發人員往往是在資料庫中使用存儲過程來實現商業邏輯,這種情況下NHibernate可能不是最好的解決方案,但對於那些基於.NET,並且能夠實現OO業務模型和商業邏輯的中間層應用,NHibernate是最有用的。NHibernate可以幫助用戶消除或者包裝那些針對特定廠商的SQL代碼,並且幫用戶把結果集從表格式的表示形式轉換成一系列的對象。  

      NHibernate 是一個基於.Net 的針對關係型資料庫的對象持久化類庫。NHibernate 來源於非常優秀的基於Java的Hibernate 關係型持久化工具

5、Nhibernate的架構介紹(這塊就直接copy 李永京大神的)

      你知道NHibernate到底什麼樣子?下麵我摘取官方文檔中的三幅不同的結構圖稍做說明。

      第一幅圖:NHibernate體繫結構非常抽象的概覽 

      概覽

      這幅圖展示了NHibernate在資料庫和應用程式之間提供了一個持久層。

     

      第二幅圖:輕量級體系,應用程式自己提供ADO.NET連接,並且自行管理事務。

      輕量級體系

 

       第三幅圖:重量級體系:所有的底層ADO.NET API都被抽象了。

        重量級體系

 

          

 

6、Nhibernate映射方法介紹(該點自己也存在一定的疑問,如果有知道的園友請指正)

     介紹:對象和關係資料庫之間的映射是用一個XML文檔(XML document)來定義的(這個是一個基礎)。那麼我們基於這個基礎來講下如何更加便捷的進行映射。

     1、第一階段:通過自己編寫xml文檔進行映射 (這種方法適合新入門的聯繫)

     2、第二階段:通過代碼生成工具進行映射(請園友知道的列下工具,因為之前公司用的是定製化開發出來的生成工具的)

     3、第三階段:通過FluentNHibernate進行再代碼中進行關係映射

     4、第四階段:通過ConfORM工具進行   該介紹在李永京的文章中可以找到  (我也不太瞭解)

 

    暫時只有這四部分,如果有其他的方法,請園友提供指正,現階段Nhibernate的文章基本都是2013年之前的,參考的價值只能適用入門。網上的實例文章跨度介紹,實在讓人有些迷糊。所以想寫一篇最近的文章出來,讓大家一起討論,一起進步。

畢竟流水線一樣工作了5年,最後發現自己什麼都沒學到。

         


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本著簡潔直接,我們就直奔主題吧! 下麵是一個生成數字和字母隨機組合的驗證碼類源代碼: using System; using System.Drawing; using System.Drawing.Imaging; using System.Web.UI; using System.Drawing ...
  • 1. 2.跳轉的另一個頁面 3.Get傳值:跳轉頁面.cs頁面 4. 跳轉頁面前端頁面 效果顯示: ...
  • DataTable dtPCI = dtblSourceData.DefaultView.ToTable(true, new string[] { "Server Cell PCI" }); 根據現有 DataView 中的行,創建並返回一個新的 DataTable。 命名空間:System.Dat ...
  • 第一個NhIbernate程式 1、目的: a) 鏈接到oracle資料庫 b) 增刪改 c) 基本查詢、sql查詢 d) 視圖查詢 e) 使用存儲過程 f) 多表查詢、級聯查詢 g) 級聯增刪改 2、後續目的 a) 載入機制——立即載入or延遲載入 b) 併發控制 c) 緩存——一級緩存,二級緩存 ...
  • 學WinForm也就半年,然後轉到WPF,還在熟悉中。最近拿到一個任務:從PropertyGrid控制項,輸出內容到Word。難點有: 一.PropertyGrid控制項是WinForm控制項,在WPF中並不能直接從工具箱獲得,或者直接在XMAL中聲明使用。 如要使用,需要使用WindowFormHost ...
  • 整理了一下ASP.NET Web.config配置文件的基本使用方法。很適合新手參看,由於Web.config在使用很靈活,可以自定義一些節點。所以這裡只介紹一些比較常用的節點。 <?xml version="1.0"?> <!--註意: 除了手動編輯此文件以外,您還可以使用 Web 管理工具來配置 ...
  • 我們真的需要一次一次的讀配置嗎 1. 通過配置文件,我們其實極大地優化了代碼的結構,很多易變的元素都可以通過配置來修訂. 2. 配置文件是一個文件,那麼使用的時候不可避免的涉及到IO操作. 3. 在內存不值錢的今天,我們到底是讀內存快還是讀文件快? 4. 電腦存儲交互的情況下,不是也有緩存的結構嗎? ...
  • 問題:如何通過JS獲取列表中所選記錄信息? 解決辦法: The CRM2011 Ribbon has a special set of parameters called 'CrmParameters' that provide information about the current sessi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...