SessionFactory এবং Session কনফিগার করা

NHibernate সেটআপ এবং কনফিগারেশন - এন হাইবারনেট (NHibernate) - Microsoft Technologies

258

NHibernate এর SessionFactory এবং Session দুটি গুরুত্বপূর্ণ উপাদান। SessionFactory হল সেই অবজেক্ট যা NHibernate এর সাথে ডেটাবেসের যোগাযোগ পরিচালনা করে এবং Session হল একটি কন্টেক্সট, যা নির্দিষ্ট একটি ডেটাবেস ট্রানজেকশনের সাথে সম্পর্কিত। এই দুটি উপাদান সঠিকভাবে কনফিগার করা হলে, আপনি NHibernate ব্যবহার করে ডেটাবেসের সঙ্গে কার্যকরভাবে যোগাযোগ করতে পারবেন।


1. SessionFactory কনফিগার করা

SessionFactory একবার তৈরি হলে, এটি বিভিন্ন সেশন তৈরি করতে ব্যবহৃত হয় এবং এটি প্রোগ্রামের গ্লোবাল অ্যাক্সেস পয়েন্ট হিসেবে কাজ করে। এটি কনফিগারেশন ফাইল থেকে কনফিগারেশন তথ্য নিয়ে সেশন তৈরি করতে সহায়তা করে।

প্রথমে, hibernate.cfg.xml ফাইলটি সঠিকভাবে কনফিগার করতে হবে (যা আমরা আগেই আলোচনা করেছি)। তারপরে, সেশন ফ্যাক্টরি কনফিগার করা হবে।

using NHibernate;
using NHibernate.Cfg;

public class NHibernateHelper
{
    private static ISessionFactory sessionFactory;

    public static ISessionFactory SessionFactory
    {
        get
        {
            if (sessionFactory == null)
            {
                var configuration = new Configuration();
                configuration.Configure(); // hibernate.cfg.xml ফাইল লোড হবে
                sessionFactory = configuration.BuildSessionFactory(); // সেশন ফ্যাক্টরি তৈরি
            }
            return sessionFactory;
        }
    }
}

এখানে NHibernateHelper ক্লাসটি সেশন ফ্যাক্টরি তৈরি করার দায়িত্বে আছে। Configure() মেথডটি hibernate.cfg.xml ফাইলটি লোড করে, এবং BuildSessionFactory() সেশন ফ্যাক্টরি তৈরি করে। একবার সেশন ফ্যাক্টরি তৈরি হয়ে গেলে, এটি বিভিন্ন সেশন তৈরি করতে সহায়তা করবে।


2. Session কনফিগার করা

NHibernate এর Session একটি ডেটাবেস সেশন, যা কার্যকরভাবে ডেটাবেস অপারেশন সম্পাদন করে। একটি Session তৈরি করার পর, এটি বিভিন্ন কার্যক্রম যেমন রিড, ক্রিয়েট, আপডেট, ডিলিট ইত্যাদি পরিচালনা করতে ব্যবহৃত হয়।

Session ব্যবহারের জন্য নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:

using NHibernate;
using NHibernate.Cfg;
using System;

public class SessionExample
{
    public void PerformDatabaseOperations()
    {
        // সেশন ফ্যাক্টরি তৈরি
        using (ISession session = NHibernateHelper.SessionFactory.OpenSession())
        {
            // ট্রানজেকশন শুরু
            using (ITransaction transaction = session.BeginTransaction())
            {
                try
                {
                    // ডেটা সেভ করা
                    var employee = new Employee { Name = "John Doe", Age = 30 };
                    session.Save(employee);

                    // ট্রানজেকশন কমিট করা
                    transaction.Commit();
                }
                catch (Exception)
                {
                    // কোনো সমস্যা হলে ট্রানজেকশন রোলব্যাক করা
                    transaction.Rollback();
                    throw;
                }
            }
        }
    }
}

এখানে:

  1. OpenSession() মেথডটি একটি নতুন সেশন তৈরি করে।
  2. BeginTransaction() মেথডটি একটি ট্রানজেকশন শুরু করে, যাতে আপনি একাধিক ডেটাবেস অপারেশন একত্রে করতে পারেন।
  3. transaction.Commit() ট্রানজেকশন সফলভাবে শেষ হলে, সমস্ত পরিবর্তন ডেটাবেসে সেভ হবে।
  4. যদি কোনো সমস্যা হয়, তবে transaction.Rollback() ব্যবহার করে সমস্ত পরিবর্তন ফিরিয়ে নেওয়া হয়।

3. Session এবং Transaction ব্যবস্থাপনা

NHibernate এর Session এবং Transaction ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি ডেটাবেসে অবস্থা পরিবর্তন করতে এবং একাধিক অপারেশন অ্যাটমিকভাবে পরিচালনা করতে সহায়তা করে।

Session এবং Transaction ব্যবস্থাপনার জন্য কিছু গুরুত্বপূর্ণ পয়েন্ট:

  • Session একটি কনটেক্সট যা একাধিক ডেটাবেস অপারেশনকে সমন্বিত করে। এটি কেবলমাত্র এক সেশন ফ্যাক্টরির মাধ্যমে তৈরি করা হয়।
  • Transaction দিয়ে আপনি একাধিক ডেটাবেস অপারেশন একত্রিত করতে পারেন। যদি কোনো সমস্যা হয়, তবে ট্রানজেকশন রোলব্যাক করা যায়, যা সমস্ত পরিবর্তন বাতিল করে।

4. SessionFactory এবং Session এর সঠিক ব্যবহারের জন্য কিছু বেস্ট প্র্যাকটিস

  1. SessionFactory একবার তৈরি করুন:
    • SessionFactory কে একবার তৈরি করুন এবং সার্বজনীনভাবে ব্যবহার করুন। এটি expensive অপারেশন, সুতরাং এটি একাধিকবার তৈরি করার চেয়ে একবার তৈরি করে পুনঃব্যবহার করা উচিত।
  2. Session এবং Transaction ব্যবহারের সময় using ব্লক ব্যবহার করুন:
    • using ব্লক ব্যবহারের মাধ্যমে Session এবং Transaction এক্সেস করার সময় সঠিকভাবে রিসোর্সগুলো ক্লোজ হবে।
  3. Session কে এক সেশন ফ্যাক্টরি থেকে তৈরি করুন:
    • একাধিক সেশন তৈরি করতে হলে, একটি SessionFactory ব্যবহার করুন। এটি স্কেলেবিলিটি এবং পারফরম্যান্সের জন্য ভালো।
  4. অপারেশন সম্পন্ন হলে ট্রানজেকশন কমিট করুন:
    • যদি সমস্ত অপারেশন সঠিকভাবে চলে, তবে ট্রানজেকশন কমিট করতে হবে। অন্যথায়, রোলব্যাক করতে হবে।
  5. ডেটাবেস অপারেশন ফেইল হলে সঠিক ত্রুটি সমাধান করুন:
    • ডেটাবেসের কোনো অপারেশন ফেইল হলে, একটি সুনির্দিষ্ট catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা উচিত।

সারাংশ

SessionFactory এবং Session হল NHibernate এর গুরুত্বপূর্ণ উপাদান, যা ডেটাবেসের সাথে কার্যকর যোগাযোগ স্থাপন করে। সেশন ফ্যাক্টরি কনফিগারেশন ফাইল থেকে তথ্য নিয়ে সেশন তৈরি করতে সহায়তা করে এবং সেশন ব্যবহার করে ডেটাবেস অপারেশনগুলো পরিচালিত হয়। সঠিকভাবে সেশন এবং ট্রানজেকশন ব্যবহারের মাধ্যমে আপনি ডেটাবেসের সঠিক কার্যক্রম পরিচালনা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...