ASP.NET Core এ ডেটাবেস ইন্টিগ্রেশন করার জন্য দুইটি প্রধান পদ্ধতি ব্যবহৃত হয়: Code First এবং Database First। এই দুটি পদ্ধতির মূল পার্থক্য হলো ডেটাবেস ডিজাইন এবং মডেল ক্লাসের মধ্যে সম্পর্ক কীভাবে তৈরি করা হবে তা নিয়ে। নিচে এই দুটি পদ্ধতির বিস্তারিত বর্ণনা দেওয়া হলো।
Code First পদ্ধতিতে, ডেটাবেস মডেল প্রথমে কোডে লেখা হয়। অর্থাৎ, আপনি প্রথমে ক্লাস তৈরি করেন এবং সেগুলোকে ডেটাবেস টেবিলের সাথে ম্যাপ করেন। এরপর EF Core (Entity Framework Core) এর মাধ্যমে ডেটাবেস তৈরি করা হয়।
ধরা যাক, আপনি একটি Product
ক্লাস তৈরি করতে চান যা ডেটাবেসে একটি Products
টেবিলের জন্য ব্যবহৃত হবে।
Model Class (Product.cs):
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
DbContext Class (ApplicationDbContext.cs):
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
}
এখন, migrations এর মাধ্যমে ডেটাবেস তৈরি করতে পারবেন:
dotnet ef migrations add InitialCreate
dotnet ef database update
এভাবে Code First পদ্ধতিতে ডেটাবেস তৈরি করা হয়।
Database First পদ্ধতিতে, ডেটাবেস প্রথমে তৈরি করা হয় এবং তারপর ডেটাবেসের কাঠামো অনুযায়ী C# ক্লাস (Model) তৈরি করা হয়। এতে, ডেটাবেসের উপস্থিতির উপর ভিত্তি করে কোড জেনারেট করা হয়।
ধরা যাক, আপনি একটি ডেটাবেস তৈরি করেছেন এবং সেটির সাথে মডেল ক্লাস জেনারেট করতে চান। ডেটাবেসের টেবিলগুলি থেকে ক্লাস জেনারেট করতে EF Core Scaffold ব্যবহার করা হয়।
ডেটাবেস থেকে ক্লাস জেনারেট করার জন্য কমান্ড:
dotnet ef dbcontext scaffold "ConnectionString" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models
এতে Products টেবিলের জন্য Product
ক্লাস তৈরি হয়ে যাবে। DbContext
ক্লাসও তৈরি হবে, যেটি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করবে।
বৈশিষ্ট্য | Code First | Database First |
---|---|---|
ডেটাবেসের শুরু | কোডের মাধ্যমে ডেটাবেস তৈরি করা হয়। | ডেটাবেস আগে থেকেই তৈরি থাকে। |
ডেটাবেস ডিজাইন | কোডে মডেল ক্লাস তৈরি করা হয়। | ডেটাবেসের স্কিমা অনুযায়ী কোড তৈরি হয়। |
মাইগ্রেশন ব্যবহৃত হয় | মাইগ্রেশন ব্যবহার করে ডেটাবেস আপডেট করা হয়। | ডেটাবেস তৈরি হয়ে গেলে কোড জেনারেট করা হয়। |
ডেটাবেস টেবিল কাস্টমাইজেশন | কোডের মধ্যে টেবিল কাস্টমাইজ করা হয়। | ডেটাবেসের টেবিলের কাস্টমাইজেশন আগে থেকেই করা থাকে। |
ফ্লেক্সিবিলিটি | বেশি ফ্লেক্সিবিলিটি, ডেটাবেস এবং কোডের কাঠামো একত্রে কন্ট্রোল করা যায়। | কম ফ্লেক্সিবিলিটি, কারণ ডেটাবেস আগে থেকেই তৈরি থাকে। |
Code First এবং Database First উভয় পদ্ধতিই Entity Framework Core এর শক্তিশালী ফিচার, এবং আপনার প্রজেক্টের প্রয়োজন অনুযায়ী যে কোন পদ্ধতি ব্যবহার করা যেতে পারে।
common.read_more