Pre-Insert, Post-Insert Event ব্যবহার

NHibernate এর Event এবং Interceptor System - এন হাইবারনেট (NHibernate) - Microsoft Technologies

308

NHibernate-এ Pre-Insert এবং Post-Insert ইভেন্টগুলি হল সেই ইভেন্টস যা একটি অবজেক্ট ডেটাবেসে ইনসার্ট করার আগে এবং পরে ট্রিগার হয়। এই ইভেন্টগুলো ব্যবহার করে আপনি কিছু অতিরিক্ত লজিক প্রয়োগ করতে পারেন, যেমন ডেটা পরিবর্তন করা, লগিং করা, বা সিস্টেমে কোনও নির্দিষ্ট কাজ সম্পাদন করা।


1. Pre-Insert Event

Pre-Insert ইভেন্টটি একটি অবজেক্ট যখন ডেটাবেসে ইনসার্ট করার জন্য প্রস্তুত হয়, তখন ট্রিগার হয়। এটি ডেটাবেসে ইনসার্ট করার আগে কিছু অতিরিক্ত কাজ করার সুযোগ দেয়। উদাহরণস্বরূপ, আপনি ডেটাবেসে কিছু মান ইনসার্ট করার আগে ডেটার বৈধতা পরীক্ষা বা ডিফল্ট মান সেট করতে পারেন।

Pre-Insert ইভেন্ট ব্যবহার

PreInsertEvent-এ আপনার অবজেক্টে কিছু পরিবর্তন করতে বা অতিরিক্ত কাজ সম্পাদন করতে পারেন।

উদাহরণস্বরূপ:

using NHibernate.Event;

public class MyPreInsertEventListener : IPreInsertEventListener
{
    public bool OnPreInsert(PreInsertEvent @event)
    {
        var entity = @event.Entity as Employee;
        if (entity != null)
        {
            // ডেটাবেসে ইনসার্ট করার আগে অতিরিক্ত কাজ করতে পারেন
            if (string.IsNullOrEmpty(entity.CreatedDate))
            {
                entity.CreatedDate = DateTime.Now.ToString();  // ডিফল্ট মান সেট করা
            }
        }
        return false;  // true হলে প্রক্রিয়া থামবে, false মানে ইভেন্ট চালু থাকবে
    }
}

এখানে, OnPreInsert মেথডটি Employee অবজেক্টে CreatedDate প্রপার্টির ডিফল্ট মান সেট করছে। PreInsertEvent তে কোনো পরিবর্তন করলে, এটি ডেটাবেসে ইনসার্ট হওয়ার আগেই প্রক্রিয়া সম্পন্ন হবে।

NHibernate-এ Pre-Insert ইভেন্ট রেজিস্টার করা

var configuration = new Configuration();
configuration.SetListener(ListenerType.PreInsert, new MyPreInsertEventListener());

এভাবে, আপনি আপনার ইভেন্ট লিস্টেনারকে NHibernate কনফিগারেশনের সাথে সংযুক্ত করে রাখতে পারেন।


2. Post-Insert Event

Post-Insert ইভেন্টটি ডেটাবেসে ইনসার্ট হওয়ার পরে ট্রিগার হয়। এই ইভেন্টটি সাধারণত লগিং, বা অন্যান্য সিস্টেমে তথ্য আপডেট করার জন্য ব্যবহৃত হয়। একবার যখন ইনসার্ট অপারেশন সফলভাবে সম্পন্ন হয়ে যায়, তখন এই ইভেন্টটি ব্যবহৃত হতে পারে।

Post-Insert ইভেন্ট ব্যবহার

PostInsertEventListener এর মাধ্যমে আপনি ইনসার্টের পরে কিছু অতিরিক্ত কার্যকলাপ পরিচালনা করতে পারেন, যেমন অন্য টেবিল আপডেট বা মেসেজ পাঠানো।

using NHibernate.Event;

public class MyPostInsertEventListener : IPostInsertEventListener
{
    public void OnPostInsert(PostInsertEvent @event)
    {
        var entity = @event.Entity as Employee;
        if (entity != null)
        {
            // ইনসার্ট করার পর অতিরিক্ত কাজ করতে পারেন
            Console.WriteLine("Employee with ID: " + entity.Id + " has been inserted.");
            // এখানে আপনি লগিং বা অন্য কোন কাজ করতে পারেন
        }
    }
}

এখানে, OnPostInsert মেথডটি ডেটাবেসে ইনসার্ট হওয়ার পরে ট্রিগার হবে এবং সফল ইনসার্ট হওয়ার পর একটি বার্তা কনসোলে প্রদর্শন করবে।

NHibernate-এ Post-Insert ইভেন্ট রেজিস্টার করা

var configuration = new Configuration();
configuration.SetListener(ListenerType.PostInsert, new MyPostInsertEventListener());

এভাবে, PostInsert ইভেন্ট লিস্টেনারকে NHibernate কনফিগারেশনে রেজিস্টার করা যাবে।


3. Pre-Insert এবং Post-Insert এর ব্যবহারের ক্ষেত্র

Pre-Insert:

  • ডেটার বৈধতা পরীক্ষা: ইনসার্ট করার আগে কিছু ফিল্ডের মান পরীক্ষা করা বা সেট করা।
  • ডিফল্ট মান নির্ধারণ: কোনো মান না থাকলে ডিফল্ট মান সেট করা।
  • ট্রানজেকশন প্রিপারেশন: ইনসার্ট করার আগে কিছু প্রিপারেশন কাজ সম্পন্ন করা।

Post-Insert:

  • লগিং: ডেটাবেসে ইনসার্ট হওয়া তথ্য লগ করা।
  • সার্ভিস কল করা: ইনসার্ট হওয়া ডেটা ব্যবহৃত কোনো সার্ভিসে পাঠানো।
  • ডেটা অডিটিং: ডেটা ইনসার্ট হওয়ার পর অডিট বা ট্র্যাকিং তথ্য সিস্টেমে জমা করা।

4. Pre-Insert এবং Post-Insert ইভেন্টের সুবিধা

  • কাস্টমাইজেশন: আপনি ডেটাবেসে ইনসার্ট করার আগে বা পরে কাস্টম কার্যকলাপ যুক্ত করতে পারেন।
  • লজিক ব্যবস্থাপনা: সিস্টেমের ডেটা ইনসার্ট করার সময় অগ্রিম বা পরবর্তী কাজ করার সুযোগ দেয়।
  • ডেটা অখণ্ডতা: ডেটার অখণ্ডতা বজায় রাখতে সহায়তা করে, যেমন, ইনসার্ট করার আগে বা পরে কিছু মান যাচাই বা সেট করা।

Pre-Insert এবং Post-Insert ইভেন্টগুলি NHibernate এ আপনার ডেটাবেস অপারেশনগুলোকে আরও কাস্টমাইজ করতে এবং সিস্টেমে অতিরিক্ত কার্যকলাপ সংযোজন করতে সহায়তা করে, যেমন লগিং, ডেটা ভ্যালিডেশন, বা অন্যান্য সার্ভিস কল।

Content added By
Promotion

Are you sure to start over?

Loading...