NHibernate 是一個非常流行的全功能工具,可以用作 Microsoft .Net 平台中物件關係映射的解決方案。它是Hibernate 的連接埠之一。透過使用這個框架,我們可以將物件導向的領域模型映射到傳統的關聯式資料庫。在這篇 C# 中的 nhibernate 文章中,我們將透過範例了解什麼是 C# 中的 NHibernate、如何在其中工作和開發專案、如何開始並查看其實現。
NHibernate 的主要功能是將 C# 或其他平台(例如 .Net)中的類別對應到關聯式資料庫(例如 MySQL)中的表。這也意味著NHibernate正在將CLR的資料類型轉換為SQL。 NHibernate 也負責查詢和檢索數據,並且不需要產生 SQL 命令,因為 NHibernate 也可以處理這些問題。因此,開發人員無需擔心物件轉換。該應用程式還對許多 SQL 資料庫保持可移植性,幾乎不會影響效能。
您需要安裝 NHibernate 並擁有一個用於編碼的編輯器。此外,您還應該有一個將在應用程式中使用的資料庫,例如 MySQL。我們可以使用 Sublime Text、Visual Studio、Eclipse 或任何其他編輯器來建立 NHibernate 專案。最推薦的編輯器是 Visual Studio。視覺工作室的畫面如下所示 –
您可以使用以下方法下載 NHibernate DLL –
一旦您獲得了 NHibernate 的 zip 文件,您只需將其解壓縮到特定目錄中的特定資料夾中即可。現在,您只需引用該目錄即可輕鬆在專案中新增 NHibernate DLL 的引用。
用 C# 建立 NHibernate 專案非常簡單,您只需要在系統上安裝 Visual Studio 程式碼編輯器。請注意,Visual Studio 的版本應為 2008 或更高版本。在 C# 中使用 NHibernate 建立專案所需遵循的步驟如下所示 –
首先,我們將在資料庫中建立一個表,例如 Educba_writers。我們在 MySQL 中的表格如下所示 –
現在,我們將建立一個名為 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(); } } } public virtual string department_id" />
最後一件事是關閉會話 –
您可以看到輸出被轉換,如下所示 –
C# 中的 NHibernate 可以用作 ORM(即物件關係映射)的開源、免費框架。它是專為 .Net 框架設計的,有助於創建持久層。
以上是C# 中的休眠的詳細內容。更多資訊請關注PHP中文網其他相關文章!