DbContext এবং Database Migrations হল Entity Framework Core (EF Core)-এর দুটি প্রধান অংশ, যা ডেটাবেসের সাথে কাজ করার প্রক্রিয়াকে সহজ করে তোলে। DbContext ডেটাবেসের সাথে যোগাযোগের মাধ্যম হিসেবে কাজ করে এবং Migrations ডেটাবেসের স্কিমা পরিবর্তন এবং তার সাথে সম্পর্কিত কনফিগারেশনগুলো ট্র্যাক করে। চলুন, এগুলো সম্পর্কে বিস্তারিত জানি।
DbContext EF Core-এর কেন্দ্রীয় অংশ। এটি ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয় এবং DbSet প্রপার্টি ব্যবহার করে ডেটাবেস টেবিলের সাথে সম্পর্ক স্থাপন করে।
DbContext ক্লাস তৈরি করা:
DbContext তৈরি করার জন্য আপনাকে একটি ক্লাস তৈরি করতে হবে যেটি DbContext থেকে ইনহেরিট করবে। এতে আপনার মডেল ক্লাসগুলো DbSet হিসেবে সংজ্ঞায়িত করতে হবে।
উদাহরণ:
public class ApplicationDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
}
এখানে Customers
এবং Orders
হল DbSet, যা ডেটাবেসের টেবিলের সাথে সম্পর্কিত।
Migrations হল ডেটাবেসের স্কিমার মধ্যে পরিবর্তন ট্র্যাক করার একটি প্রক্রিয়া। যখন আপনি নতুন মডেল তৈরি করেন বা বিদ্যমান মডেলে কোনো পরিবর্তন আনেন, তখন EF Core Migrations তৈরি করে, যা ডেটাবেসের স্কিমা পরিবর্তনের জন্য প্রয়োজনীয় কমান্ডগুলো তৈরি করে। মাইগ্রেশনগুলির মাধ্যমে ডেটাবেসের আপডেট করা হয়, এবং এটি ডেটাবেস এবং কোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে।
মাইগ্রেশন তৈরি করা:
প্রথমে, আপনি যখন মডেলে কোনো পরিবর্তন করবেন (যেমন নতুন প্রপার্টি বা ক্লাস যোগ করা), তখন আপনাকে একটি নতুন মাইগ্রেশন তৈরি করতে হবে। এটি করতে নিচের কমান্ড ব্যবহার করা হয়:
dotnet ef migrations add InitialCreate
এই কমান্ডটি একটি মাইগ্রেশন ফাইল তৈরি করবে, যা ডেটাবেসের স্কিমা পরিবর্তনের জন্য প্রয়োজনীয় কোড ধারণ করবে।
ডেটাবেস আপডেট করা:
একবার মাইগ্রেশন তৈরি হলে, আপনি dotnet ef database update
কমান্ড ব্যবহার করে ডেটাবেসে সেই মাইগ্রেশন প্রয়োগ করতে পারবেন। এটি ডেটাবেসে নতুন স্কিমা পরিবর্তন আনবে।
dotnet ef database update
মাইগ্রেশন ফাইলটি একটি C# ক্লাস যা দুটি মেথড ধারণ করে:
এখানে একটি উদাহরণ:
public partial class InitialCreate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Customers",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Customers", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Customers");
}
}
এখানে Up() মেথডে একটি Customers
টেবিল তৈরি করা হয়েছে, এবং Down() মেথডে ঐ টেবিলটি মুছে ফেলার নির্দেশনা দেওয়া হয়েছে।
মাইগ্রেশন ফিরিয়ে আনা:
কখনও কখনও, আপনি একটি মাইগ্রেশন রোলব্যাক করতে চাইলে dotnet ef migrations remove কমান্ড ব্যবহার করতে পারেন, যা শেষ তৈরি হওয়া মাইগ্রেশনটি বাতিল করে।
dotnet ef migrations remove
মাইগ্রেশন ইতিহাস দেখা:
আপনি dotnet ef migrations list কমান্ড ব্যবহার করে বর্তমানে সমস্ত মাইগ্রেশন ফাইলের একটি তালিকা দেখতে পারেন।
dotnet ef migrations list
DbContext EF Core-এ ডেটাবেসের সাথে সম্পর্ক স্থাপনের প্রধান উপাদান, যা আপনার মডেল এবং ডেটাবেস টেবিলের মধ্যে ম্যাপিং করে। Migrations ডেটাবেসের স্কিমা পরিবর্তন ট্র্যাক এবং প্রয়োগ করার প্রক্রিয়া, যা ডেটাবেস এবং কোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে। মাইগ্রেশন তৈরি, আপডেট এবং রোলব্যাক করার মাধ্যমে আপনি সহজেই ডেটাবেসের স্কিমা পরিবর্তন করতে পারবেন। EF Core এ এই দুটি টুল ব্যবহারের মাধ্যমে ডেটাবেসের কার্যক্রম সহজ, দ্রুত, এবং দক্ষভাবে পরিচালিত হয়।
common.read_more