DbSet ব্যবহার করে Database Table কে Represent করা

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Database Context এবং DbContext Class |
234
234

Entity Framework (EF) এর মাধ্যমে, DbSet একটি গুরুত্বপূর্ণ কনসেপ্ট যা ডেটাবেস টেবিলের প্রতিনিধিত্ব (representation) করে। DbSet ক্লাসের মাধ্যমে আপনি আপনার মডেল ক্লাসের সাথে ডেটাবেসের টেবিলের সম্পর্ক স্থাপন করতে পারেন। একক শব্দে, DbSet একটি জেনেরিক কলেকশন যা একটি নির্দিষ্ট টাইপের অর্‌ডারিং, ফিল্টারিং এবং কুয়েরি অপারেশন করার জন্য ব্যবহৃত হয়।

EF-এর মাধ্যমে ডেটাবেস টেবিলের সাথে কাজ করতে DbSet ব্যবহার করা হয়। যখন আপনি DbSet তৈরি করেন, তখন আপনি সেই টেবিলের সমস্ত রেকর্ডের উপর CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন।


DbSet কী এবং কীভাবে এটি কাজ করে

DbSet একটি জেনেরিক ক্লাস যা আপনার মডেল ক্লাস (যেমন Student, Course ইত্যাদি) কে ডেটাবেস টেবিলের সাথে ম্যাপ করে। এই ক্লাসের মাধ্যমে আপনি মডেল ক্লাসের প্রতিটি ইনস্ট্যান্সকে টেবিলের রেকর্ড হিসেবে পরিচালনা করতে পারেন।

এখানে একটি উদাহরণ দেওয়া হলো, যেখানে DbSet ব্যবহার করে একটি Student টেবিলকে ডেটাবেসের সাথে যুক্ত করা হয়েছে:

DbSet এর উদাহরণ

  1. Student ক্লাস তৈরি করা: প্রথমে একটি Student ক্লাস তৈরি করি, যা একটি Entity হিসেবে কাজ করবে।

    public class Student
    {
        public int StudentId { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }
    
  2. DbContext ক্লাসে DbSet যোগ করা: এখন, DbContext ক্লাসে DbSet<Student> তৈরি করে এই মডেলটি ডেটাবেসের টেবিলের সাথে সম্পর্ক স্থাপন করা হবে। DbContext হল EF-এর একটি মূল ক্লাস, যা ডেটাবেস অপারেশন পরিচালনা করে।

    public class SchoolContext : DbContext
    {
        public DbSet<Student> Students { get; set; }
    
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=.\SQLExpress;Database=SchoolDb;Trusted_Connection=True;");
        }
    }
    

    এখানে, Students হচ্ছে DbSet<Student> যা Student টেবিলের প্রতিনিধিত্ব করে। DbSet ব্যবহার করে আপনি টেবিলের রেকর্ডে অ্যাক্সেস এবং অপারেশন করতে পারেন।

  3. DbSet এর মাধ্যমে ডেটাবেসে CRUD অপারেশন করা: DbSet এর মাধ্যমে আপনি নিম্নলিখিত CRUD অপারেশনগুলো করতে পারেন:

    • Create: নতুন রেকর্ড তৈরি করা।
    using (var context = new SchoolContext())
    {
        var student = new Student { Name = "John Doe", Age = 22 };
        context.Students.Add(student);
        context.SaveChanges();
    }
    
    • Read: ডেটাবেস থেকে রেকর্ড পড়া।
    using (var context = new SchoolContext())
    {
        var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
        Console.WriteLine(student?.Name);
    }
    
    • Update: ডেটাবেসের রেকর্ড আপডেট করা।
    using (var context = new SchoolContext())
    {
        var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
        if (student != null)
        {
            student.Age = 23;
            context.SaveChanges();
        }
    }
    
    • Delete: ডেটাবেস থেকে রেকর্ড মুছে ফেলা।
    using (var context = new SchoolContext())
    {
        var student = context.Students.FirstOrDefault(s => s.StudentId == 1);
        if (student != null)
        {
            context.Students.Remove(student);
            context.SaveChanges();
        }
    }
    

DbSet এর অন্যান্য ব্যবহার

DbSet কেবল CRUD অপারেশনেই সীমাবদ্ধ নয়, আপনি এর মাধ্যমে আরও উন্নত কুয়েরি অপারেশনও করতে পারেন। উদাহরণস্বরূপ:

  1. LINQ কুয়েরি ব্যবহার করা: LINQ এর সাহায্যে DbSet থেকে ডেটা ফিল্টার, গ্রুপ, এবং অর্ডার করা যায়।

    using (var context = new SchoolContext())
    {
        var students = context.Students
                              .Where(s => s.Age > 18)
                              .OrderBy(s => s.Name)
                              .ToList();
        foreach (var student in students)
        {
            Console.WriteLine(student.Name);
        }
    }
    
  2. Include Method ব্যবহার করে Related Data লোড করা: যদি আপনার মডেল ক্লাসে সম্পর্কিত (related) টেবিল থাকে, তবে Include মেথড ব্যবহার করে আপনি একাধিক টেবিলের ডেটা লোড করতে পারেন।

    using (var context = new SchoolContext())
    {
        var students = context.Students
                              .Include(s => s.Courses)  // Assuming Student has a related Courses table
                              .ToList();
        foreach (var student in students)
        {
            Console.WriteLine(student.Name);
            foreach (var course in student.Courses)
            {
                Console.WriteLine(course.Name);
            }
        }
    }
    
  3. Asynchronous Operations: DbSet এর মাধ্যমে আপনি অ্যাসিঙ্ক্রোনাস অপারেশনও করতে পারেন, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে।

    using (var context = new SchoolContext())
    {
        var students = await context.Students.ToListAsync();
        foreach (var student in students)
        {
            Console.WriteLine(student.Name);
        }
    }
    

সারসংক্ষেপ

DbSet Entity Framework এর একটি গুরুত্বপূর্ণ অংশ যা আপনার ডেটাবেস টেবিলের প্রতিনিধিত্ব করে এবং আপনাকে সেই টেবিলের উপর CRUD অপারেশন করতে সক্ষম করে। DbContext ক্লাসের মধ্যে DbSet তৈরি করে, আপনি ডেটাবেসের সাথে কাজ করতে পারেন এবং LINQ বা অন্যান্য পদ্ধতি ব্যবহার করে ডেটা কুয়েরি, ফিল্টারিং, এবং অর্ডারিং করতে পারেন। এটি Entity Framework এর মাধ্যমে ডেটাবেস ম্যানেজমেন্টকে আরও সহজ এবং শক্তিশালী করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion