NHibernate C# (.NET): पूर्ण गाइड उदाहरण सहित

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

NHibernate क्या है और इसकी आवश्यकता क्यों है?

NHibernate .NET प्लेटफॉर्म के लिए एक शक्तिशाली और परिपक्व ऑब्जेक्ट-रिलेशनल लाइब्रेरी (ORM) है, जो C# में लिखी गई है। यह प्रसिद्ध Java लाइब्रेरी Hibernate का पोर्ट है। NHibernate आपके C# एप्लिकेशन में ऑब्जेक्ट-ओरिएंटेड डेटा मॉडल और डेटाबेस (SQL Server, PostgreSQL, MySQL, Oracle आदि) में रिलेशनल डेटा मॉडल के बीच मूलभूत असंगति की समस्या को हल करता है।

NHibernate का मुख्य उद्देश्य C# ऑब्जेक्ट्स (POCO — Plain Old CLR Objects) और डेटाबेस टेबल में रिकॉर्ड्स के बीच डेटा रूपांतरण को स्वचालित करना है। CRUD ऑपरेशंस (Create, Read, Update, Delete) के लिए सैकड़ों पंक्तियाँ SQL कोड लिखने के बजाय, आप ऑब्जेक्ट्स के साथ काम करते हैं, और NHibernate SQL क्वेरीज़ जनरेट और निष्पादित करने का कार्य संभालता है।

NHibernate का उपयोग क्यों करें?

  • डेवलपमेंट स्पीड बढ़ाएँ: आप कम कोड लिखते हैं, खासकर ADO.NET के लिए boilerplate कोड।
  • गलतियाँ कम करें: SQL क्वेरीज़ स्वचालित रूप से जनरेट होती हैं, जिससे सिंटैक्स एरर और SQL इंजेक्शन का खतरा कम होता है (सही उपयोग पर)।
  • डेटाबेस से स्वतंत्रता: आप केवल कनेक्शन स्ट्रिंग और NHibernate डायलेक्ट बदलकर DBMS बदल सकते हैं, बिना बिज़नेस लॉजिक को फिर से लिखे।
  • कैशिंग प्रबंधन: पहले और दूसरे स्तर की अंतर्निहित कैशिंग तंत्र एप्लिकेशन की गति को काफी बढ़ाते हैं।
  • Lazy Loading (विलंबित लोडिंग): संबंधित डेटा तभी लोड होता है जब वास्तव में ज़रूरत हो, जिससे संसाधनों की बचत होती है।
  • शक्तिशाली क्वेरी भाषा: HQL (Hibernate Query Language) और LINQ to NHibernate आपको टाइप-सेफ क्वेरीज़ लिखने की अनुमति देते हैं।

NHibernate की स्थापना (इंस्टॉलेशन)

NHibernate NuGet के माध्यम से वितरित किया जाता है — .NET के लिए पैकेज मैनेजर। इंस्टॉलेशन बहुत आसान है।

पैकेज मैनेजर कंसोल (Package Manager Console) के माध्यम से:

Install-Package NHibernate

.NET CLI के माध्यम से (.NET Core / .NET 5+ प्रोजेक्ट्स के लिए):

dotnet add package NHibernate

अतिरिक्त पैकेज (आवश्यकतानुसार):

  • NHibernate.Caches.CoreMemoryCache — दूसरे स्तर की कैशिंग के लिए।
  • System.Data.SqlClient या Microsoft.Data.SqlClient — SQL Server के साथ काम करने के लिए।
  • Npgsql — PostgreSQL के साथ काम करने के लिए।
  • MySql.Data — MySQL के साथ काम करने के लिए।

इंस्टॉलेशन के बाद, आपको कॉन्फ़िगरेशन सेट करना होगा (आमतौर पर app.config, web.config या appsettings.json फ़ाइल में) या कोड में Fluent कॉन्फ़िगरेशन के माध्यम से।

कोड उदाहरण के साथ त्वरित शुरुआत

NHibernate के साथ काम करने का एक सरल उदाहरण देखते हैं। मान लीजिए, हमारे पास SQL Server डेटाबेस में Products टेबल है।

1. एंटिटी क्लास बनाएँ (Entity):

public class Product
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual decimal Price { get; set; }
}

महत्वपूर्ण: सभी प्रॉपर्टीज़ virtual होनी चाहिए — यह NHibernate की प्रॉक्सी तंत्र (lazy loading, change tracking) को लागू करने की आवश्यकता है।

2. मैपिंग फ़ाइल बनाएँ (Product.hbm.xml):

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="YourAssemblyName"
                   namespace="YourNamespace">
    <class name="Product" table="Products">
        <id name="Id" column="ProductId">
            <generator class="native" />
        </id>
        <property name="Name" column="ProductName" length="100" not-null="true" />
        <p                    

अनुशंसाएँ