Database এর পরিবর্তনসমূহকে Model এ সিঙ্ক করা

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

Code First পদ্ধতিতে, যখন ডেটাবেসে কোনো পরিবর্তন ঘটে, যেমন টেবিলের নতুন কলাম যোগ করা বা কোনো কলাম পরিবর্তন করা, তখন এই পরিবর্তনগুলো মডেল (যেমন, Entity ক্লাস) এর সাথে সিঙ্ক্রোনাইজ করা প্রয়োজন। EF Core এই কাজটি মাইগ্রেশন ব্যবস্থার মাধ্যমে পরিচালনা করে। মাইগ্রেশন একটি পদ্ধতি যা ডেটাবেস এবং মডেল এর মধ্যে পরিবর্তনগুলো ট্র্যাক করে এবং তাদের আপডেট করতে সহায়তা করে।


Database এর পরিবর্তন মডেল এ সিঙ্ক করার প্রক্রিয়া

প্রথমেই, ডেটাবেসে যে কোনো পরিবর্তন করার পর, আপনি মডেল ক্লাস এবং DbContext এ পরিবর্তন করবেন। এরপর, আপনি Entity Framework এর মাইগ্রেশন ব্যবস্থাকে ব্যবহার করে ডেটাবেসের সাথে সিঙ্ক করতে পারবেন। এখানে কিছু ধাপ দেওয়া হলো যেগুলি আপনি অনুসরণ করতে পারেন:


১. মডেল ক্লাসে পরিবর্তন করা

ধরা যাক, আপনি একটি Student ক্লাসে একটি নতুন প্রপার্টি যোগ করেছেন:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }

    // নতুন প্রপার্টি যোগ করা হয়েছে
    public string Email { get; set; }
}

এখন, আপনি মডেল ক্লাসে এই পরিবর্তনটি সম্পন্ন করেছেন।


২. নতুন মাইগ্রেশন তৈরি করা

এখন, আপনি ডেটাবেসে এই পরিবর্তনগুলো প্রয়োগ করতে চাইলে আপনাকে একটি নতুন মাইগ্রেশন তৈরি করতে হবে। Visual Studio এর Package Manager Console বা .NET CLI ব্যবহার করে আপনি মাইগ্রেশন তৈরি করতে পারেন।

Visual Studio Package Manager Console এ:

Add-Migration AddEmailToStudent

এটি একটি নতুন মাইগ্রেশন তৈরি করবে যার নাম হবে AddEmailToStudent। এই মাইগ্রেশনের মধ্যে কোডের পরিবর্তন অনুযায়ী ডেটাবেসে পরিবর্তন করার জন্য প্রয়োজনীয় স্ক্রিপ্ট থাকবে।


৩. ডেটাবেস আপডেট করা

মাইগ্রেশন তৈরি হওয়ার পর, আপনি ডেটাবেসে সেই পরিবর্তনগুলি প্রয়োগ করতে Update-Database কমান্ড ব্যবহার করবেন। এটি ডেটাবেসের স্কিমা আপডেট করবে এবং নতুন প্রপার্টি Email যুক্ত হবে।

Visual Studio Package Manager Console এ:

Update-Database

এটি ডেটাবেসের মধ্যে মাইগ্রেশন কার্যকর করবে এবং আপনার মডেল ক্লাসের সাথে ডেটাবেসের স্কিমা সিঙ্ক করবে।


৪. মাইগ্রেশন কোড পর্যালোচনা করা

আপনি যদি মাইগ্রেশন কোড দেখতে চান, তাহলে এটি সাধারণত Migrations ফোল্ডারে সংরক্ষিত হবে। সেখানে দুটি ফাইল থাকবে:

  1. Migrations/YourMigrationName.cs: এতে কোড থাকবে যা ডেটাবেসের স্কিমা পরিবর্তনের জন্য তৈরি করা হয়েছে।
  2. Migrations/YourMigrationName.Designer.cs: এতে মাইগ্রেশন সম্পর্কিত ডিজাইনার কোড থাকে যা EF Core ডেটাবেসের পরিবর্তন ট্র্যাক করে।

এটি একটি উদাহরণ হতে পারে:

public partial class AddEmailToStudent : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.AddColumn<string>(
            name: "Email",
            table: "Students",
            nullable: true);
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DropColumn(
            name: "Email",
            table: "Students");
    }
}

এটি দেখায় কিভাবে Email কলাম Students টেবিলে যুক্ত হয়েছে এবং মাইগ্রেশন প্রয়োগ করা হলে কী পরিবর্তন ঘটবে।


৫. মাইগ্রেশন ব্যাকআউট (Rollback) করা

যদি আপনি মনে করেন যে এই মাইগ্রেশনটি ভুল ছিল বা আপনি আগের সংস্করণে ফিরে যেতে চান, তাহলে Remove-Migration কমান্ড ব্যবহার করে মাইগ্রেশনটি রদ (rollback) করতে পারবেন।

Visual Studio Package Manager Console এ:

Remove-Migration

এটি আপনার শেষ মাইগ্রেশনটি রিমুভ করবে এবং কোডের পরিবর্তন পুনরায় সিঙ্ক করবে।


৬. মাইগ্রেশন এ Data Seeding

কখনো কখনো ডেটাবেসে নতুন কলাম বা টেবিল যোগ করার পর কিছু ডিফল্ট ডেটা সিডিং (seeding) করতে হয়। EF Core এর মাধ্যমে আপনি ডেটাবেস সিডিং পরিচালনা করতে পারেন।

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>().HasData(
        new Student { Id = 1, Name = "John Doe", Age = 22, Email = "john.doe@example.com" },
        new Student { Id = 2, Name = "Jane Doe", Age = 23, Email = "jane.doe@example.com" }
    );
}

এটি নতুন সিডিং ডেটা ডেটাবেসে ইনসার্ট করে যখন আপনি Update-Database কমান্ড চালাবেন।


Database এর পরিবর্তন এবং মডেল সিঙ্ক করার গুরুত্বপূর্ণ বিষয়

  • কোডের পরিবর্তন: ডেটাবেসে যে কোনো পরিবর্তন করার পর সেই পরিবর্তন মডেল ক্লাসে সঠিকভাবে অন্তর্ভুক্ত করুন। সঠিকভাবে মডেল ও ডেটাবেসের মধ্যে সামঞ্জস্য বজায় রাখতে মাইগ্রেশন ব্যবহৃত হবে।
  • মাইগ্রেশন টুল: Entity Framework এর মাইগ্রেশন ব্যবস্থাকে ব্যবহার করলে আপনার ডেটাবেস স্কিমা এবং মডেলের মধ্যে সিঙ্ক্রোনাইজেশন করা সহজ হবে।
  • Data Seeding: মডেল পরিবর্তন করার পর ডেটাবেসে নতুন ডেটা সিডিং করার জন্য উপযুক্ত।

এভাবে, ডেটাবেসের পরিবর্তনগুলি মডেল ক্লাসে সিঙ্ক করা সম্ভব, এবং Entity Framework এর মাইগ্রেশন ব্যবস্থার মাধ্যমে ডেটাবেস এবং মডেল দুটির মধ্যে একাধিক সংস্করণের পার্থক্য সমাধান করা যায়।

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

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

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

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