首頁  >  文章  >  後端開發  >  C# 中的休眠

C# 中的休眠

WBOY
WBOY原創
2024-09-03 15:03:54301瀏覽

NHibernate 是一個非常流行的全功能工具,可以用作 Microsoft .Net 平台中物件關係映射的解決方案。它是Hibernate 的連接埠之一。透過使用這個框架,我們可以將物件導向的領域模型映射到傳統的關聯式資料庫。在這篇 C# 中的 nhibernate 文章中,我們將透過範例了解什麼是 C# 中的 NHibernate、如何在其中工作和開發專案、如何開始並查看其實現。

c# 中的 nhibernate 是什麼?

NHibernate 的主要功能是將 C# 或其他平台(例如 .Net)中的類別對應到關聯式資料庫(例如 MySQL)中的表。這也意味著NHibernate正在將CLR的資料類型轉換為SQL。 NHibernate 也負責查詢和檢索數據,並且不需要產生 SQL 命令,因為 NHibernate 也可以處理這些問題。因此,開發人員無需擔心物件轉換。該應用程式還對許多 SQL 資料庫保持可移植性,幾乎不會影響效能。

如何在 C# 中使用 nhibernate?

您需要安裝 NHibernate 並擁有一個用於編碼的編輯器。此外,您還應該有一個將在應用程式中使用的資料庫,例如 MySQL。我們可以使用 Sublime Text、Visual Studio、Eclipse 或任何其他編輯器來建立 NHibernate 專案。最推薦的編輯器是 Visual Studio。視覺工作室的畫面如下所示 –

c# 中的 nhibernate 入門

您可以使用以下方法下載 NHibernate DLL –

  • 從 Github 取得原始碼 – 您可以從此連結下載 NHibernate 原始碼的 zip 檔案 – https://github.com/nhibernate/nhibernate-core。頁面將如下所示,您必須按一下「代碼」按鈕才能選擇下載 zip 檔案 –

C# 中的休眠

  • 透過使用軟體套件管理器 NuGet – 如果您有 NuGet 軟體套件管理器,那麼您可以前往管理軟體包選項,然後按一下安裝 NHibernate。套件管理器視窗將如下所示 –

C# 中的休眠

  • 您可以從 SourceForge 下載 NHibernate 的 zip 檔案。您可以檢查以下網站以從 SourceForge 網站下載 NHibernate – https://sourceforge.net/projects/nhibernate/。網站的主頁如下所示 –

C# 中的休眠

一旦您獲得了 NHibernate 的 zip 文件,您只需將其解壓縮到特定目錄中的特定資料夾中即可。現在,您只需引用該目錄即可輕鬆在專案中新增 NHibernate DLL 的引用。

在c#中使用nhibernate開發專案

用 C# 建立 NHibernate 專案非常簡單,您只需要在系統上安裝 Visual Studio 程式碼編輯器。請注意,Visual Studio 的版本應為 2008 或更高版本。在 C# 中使用 NHibernate 建立專案所需遵循的步驟如下所示 –

  • 在視覺工作室中建立一個空白項目。為此,透過在視窗的開始搜尋框中搜尋或按一下您在任何地方建立的捷徑的圖示來開啟 Visual Studio 編輯器。點擊“檔案”選項,選擇開啟的資料夾,並確保您已為專案建立了一個新資料夾。視覺視窗如下圖所示 –

C# 中的休眠

  • 說到 NHibernate 項目,裡面應該有 4 個主要部分,分別是 –
  1. 要將應用程式的資料對應到 POCO,您將需要一個休眠映射檔
  2. hibernate的設定檔hibernating.cfg
  3. POCO 是普通的舊 CLR 物件
  4. 在apx或主類別中查看MVC的頁面。

c# 中的 nhibernate 範例

首先,我們將在資料庫中建立一個表,例如 Educba_writers。我們在 MySQL 中的表格如下所示 –

C# 中的休眠

現在,我們將建立一個名為 EducbaWriterHiber 的新 Web 項目,並將其設定在目錄 http://localhost/EducbaWriterHiber 中。然後我們將加入對 NHibernate.dll 的引用。如果您使用 Visual Studio 編輯器,它會自動複製專案中的所有依賴項和程式庫。然後您將建立用於映射的 XML 文件,如下所示 –

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" assembly="EducbaWriterHiber" namespace="EducbaWriterHiber.Models">
<class name="Educba_writers" table="Educba_writers" dynamic-update="true" xmlns="urn:nhibernate-mapping-2.2">
<cache usage="read-write"/>
<id name="Id" column="writer_id" type="int">
<generator class="native" />
</id>
<property name="f_name" />
<property name="l_name" />
<property name="email_id" />
<property name="mobile_number" />
<property name="join_date" />
<property name="domain_id" />
<property name="pay_amount" />
<property name="guide_id" />
<property name="department_id" />
</class>
</hibernate-mapping>

現在,我們將建立一個新的設定檔 hibernate.cfg.xml,或在 Web 中註冊該條目。配置。此後,您可以建立名為 Educbawriter 的 POCO 文件,如下所示 –

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EMPNHibernate.Models
{
public class Employee
{
public virtual int writer_id { get; set; }
public virtual string f_name { get; set; }
public virtual string l_name { get; set; }
public virtual string email_id { get; set; }
public virtual string mobile_number { get; set; }
public virtual string join_date { get; set; }
public virtual string domain_id { get; set; }
public virtual string pay_amount { get; set; }
public virtual string guide_id" />
public virtual string department_id" />
}
}

現在,我們將建立 ASX 頁面的主類,它可以用作單例類,其中包含 NHibernate 會話工廠類 –








Create an entry in Web.config
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EMPNHibernate.Models
{
public class Employee
{
public virtual int writer_id { get; set; }
public virtual string f_name { get; set; }
public virtual string l_name { get; set; }
public virtual string email_id { get; set; }
public virtual string mobile_number { get; set; }
public virtual string join_date { get; set; }
public virtual string domain_id { get; set; }
public virtual string pay_amount { get; set; }
public virtual string guide_id" />
public virtual string department_id" />
}
}
using System.Web;
using NHibernate;
using NHibernate.Cfg;
namespace EducbaWriterHiber
{
public class EducbaWriterHiberSession
{
public static ISession OpenSession()
{
var sampleConfig  = new Configuration();
sampleConfig.Configure();
ISessionFactory sampleSessFactory = sampleConfig.BuildSessionFactory();
return sampleSessFactory.OpenSession();
}
}
}

最後一件事是關閉會話 –

您可以看到輸出被轉換,如下所示 –

C# 中的休眠

結論

C# 中的 NHibernate 可以用作 ORM(即物件關係映射)的開源、免費框架。它是專為 .Net 框架設計的,有助於創建持久層。

以上是C# 中的休眠的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 物件比較下一篇:C# 物件比較