Model এবং DbContext ফাইল ম্যানেজমেন্ট

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Database First Approach |
193
193

Entity Framework (EF) প্রজেক্টে Model এবং DbContext ফাইল দুটি অত্যন্ত গুরুত্বপূর্ণ। Model ফাইলগুলিতে ডেটাবেস টেবিলের জন্য প্রয়োজনীয় ক্লাসগুলো সংজ্ঞায়িত করা হয়, এবং DbContext ফাইলটি ডেটাবেসের সাথে যোগাযোগ এবং ডেটাবেস অপারেশনগুলির জন্য ব্যবহৃত হয়। EF প্রজেক্টে এই দুটি ফাইল সঠিকভাবে ম্যানেজ করা নিশ্চিত করে যে ডেটাবেস এবং কোডের মধ্যে সঠিক সম্পর্ক স্থাপন হচ্ছে এবং ডেটা সঠিকভাবে পরিচালিত হচ্ছে।


Model ফাইল

Model ফাইলটি মূলত সেই ক্লাসগুলি ধারণ করে যা ডেটাবেসের টেবিলের প্রতিনিধিত্ব করে। প্রতিটি Model Class ডেটাবেস টেবিলের একটি একক রেকর্ডের প্রতিনিধিত্ব করে, এবং এটি Entity Class হিসেবে পরিচিত।

Model Class তৈরি করা

Model Class তৈরি করার সময়, সাধারণভাবে প্রপার্টিগুলি ডেটাবেস টেবিলের কলামের সাথে মিলে যায়। আপনি Data Annotations এবং Fluent API ব্যবহার করে এই Model গুলোর কনফিগারেশন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার একটি Student টেবিল থাকে, তাহলে আপনি Student নামে একটি Entity Class তৈরি করবেন।

উদাহরণ:

public class Student
{
    public int StudentId { get; set; }  // Primary Key
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
}

DbContext ফাইলের মধ্যে এই Student ক্লাসকে একটি DbSet হিসেবে সংজ্ঞায়িত করা হয়, যা ডেটাবেসে Student টেবিলের প্রতিনিধিত্ব করবে।


DbContext ফাইল

DbContext হচ্ছে Entity Framework এর কেন্দ্রবিন্দু। এটি ডেটাবেসের সাথে যোগাযোগের জন্য প্রয়োজনীয় সকল লজিক ধারণ করে। DbContext ক্লাসটি ডেটাবেসের সাথে সমস্ত CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করে এবং Entity Class গুলোর মাধ্যমে ডেটাবেস টেবিলগুলোর সাথে সম্পর্ক স্থাপন করে।

DbContext Class তৈরি করা

DbContext একটি বিশেষ ক্লাস যা DbContext থেকে ইনহেরিট করে এবং এতে একটি বা একাধিক DbSet প্রপার্টি থাকতে পারে, যা Entity Class গুলোর প্রতিনিধিত্ব করবে। প্রতিটি DbSet একটি টেবিলের প্রতিনিধিত্ব করে।

উদাহরণ:

public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }
    public DbSet<Teacher> Teachers { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // Connection string configuration
        optionsBuilder.UseSqlServer("your_connection_string_here");
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // Fluent API configuration can be added here
        modelBuilder.Entity<Student>().HasKey(s => s.StudentId);
    }
}

এখানে:

  • DbSet Students: Students টেবিলের প্রতিনিধিত্ব করে।
  • DbSet Teachers: Teachers টেবিলের প্রতিনিধিত্ব করে।
  • OnConfiguring: ডেটাবেস সংযোগের জন্য কনফিগারেশন সেট করে (যেমন, Connection String)।
  • OnModelCreating: Fluent API দিয়ে মডেল কনফিগারেশন করা হয়।

Model এবং DbContext ফাইল ম্যানেজমেন্ট কৌশল

ডেটাবেসের মডেল এবং DbContext ফাইলগুলোর সঠিকভাবে ম্যানেজমেন্ট করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এর উপর নির্ভর করে আপনার অ্যাপ্লিকেশনের ডেটাবেস অপারেশনগুলির কার্যকারিতা এবং পারফরম্যান্স।

Model ফাইলের ম্যানেজমেন্ট

  1. Entity Classes এ Naming Conventions ব্যবহার করা: Entity class এর নাম এবং তাদের প্রপার্টির নাম ডেটাবেস টেবিলের সাথে সঙ্গতিপূর্ণ রাখা উচিত। উদাহরণস্বরূপ, Student ক্লাসের প্রপার্টি StudentId টেবিলের primary key হবে।
  2. Data Annotations: Entity properties এ Data Annotations ব্যবহার করে প্রপার্টির বৈধতা এবং অন্যান্য কনফিগারেশন নির্ধারণ করা যায়, যেমন Required, StringLength, Key, ইত্যাদি।

উদাহরণ:

public class Student
{
    [Key]
    public int StudentId { get; set; }
    
    [Required]
    [StringLength(100)]
    public string Name { get; set; }
    
    public int Age { get; set; }
}

DbContext ফাইলের ম্যানেজমেন্ট

  1. DbSet প্রপার্টি: DbContext ক্লাসে প্রতিটি Entity এর জন্য একটি DbSet প্রপার্টি থাকতে হবে, যা সেই Entity ক্লাসের সঙ্গে সম্পর্কিত ডেটাবেস টেবিলের প্রতিনিধিত্ব করবে।
  2. Connection String: ডেটাবেসের সংযোগের জন্য Connection String সঠিকভাবে কনফিগার করতে হবে। সাধারণত এটি appsettings.json বা কোডের মধ্যে সরাসরি কনফিগার করা হয়।
  3. OnModelCreating: যদি আপনার মডেল কনফিগারেশনে পরিবর্তন করতে হয়, যেমন ফিল্ড কাস্টমাইজেশন বা টেবিল সম্পর্ক নির্ধারণ, তবে OnModelCreating মেথড ব্যবহার করুন। Fluent API মাধ্যমে ডেটাবেস কনফিগারেশন করা যেতে পারে।

উদাহরণ:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>()
        .HasKey(s => s.StudentId);

    modelBuilder.Entity<Student>()
        .Property(s => s.Name)
        .IsRequired()
        .HasMaxLength(100);
}

Model এবং DbContext ফাইলের সিঙ্ক্রোনাইজেশন

এটি গুরুত্বপূর্ণ যে, যখন আপনার ডেটাবেস মডেল পরিবর্তিত হয় (যেমন নতুন প্রপার্টি যোগ করা বা প্রপার্টি মুছে ফেলা), তখন ডেটাবেসেও এসব পরিবর্তন সিঙ্ক করা প্রয়োজন। EF আপনাকে Migrations সিস্টেমের মাধ্যমে এটি করার সুবিধা দেয়।

Migrations ব্যবহার করা

  • Add-Migration: মাইগ্রেশন তৈরি করার জন্য Add-Migration কমান্ড ব্যবহার করা হয়।
  • Update-Database: ডেটাবেসে মাইগ্রেশন আপডেট করার জন্য Update-Database কমান্ড ব্যবহার করা হয়।

উদাহরণ:

Add-Migration InitialCreate
Update-Database

সারাংশ

Model এবং DbContext ফাইল সঠিকভাবে ম্যানেজমেন্ট করা হলে আপনার Entity Framework প্রজেক্টের কার্যকারিতা উন্নত হয়। Entity ক্লাস এবং DbContext ক্লাসের মধ্যে সঠিক সম্পর্ক স্থাপন এবং কনফিগারেশন করলে, ডেটাবেসের সঙ্গে কাজ করা অনেক সহজ এবং কার্যকর হয়ে ওঠে। EF-এ মডেল ও ডেটাবেসের সিঙ্ক্রোনাইজেশন এবং মাইগ্রেশন ব্যবস্থার মাধ্যমে ডেটাবেসের পরবর্তীতে পরিবর্তন করা আরও সহজ হয়ে যায়।

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

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

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

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