Code First এবং Database First পদ্ধতি

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Entity Framework Core (EF Core) |
264
264

ASP.NET Core এ ডেটাবেস ইন্টিগ্রেশন করার জন্য দুইটি প্রধান পদ্ধতি ব্যবহৃত হয়: Code First এবং Database First। এই দুটি পদ্ধতির মূল পার্থক্য হলো ডেটাবেস ডিজাইন এবং মডেল ক্লাসের মধ্যে সম্পর্ক কীভাবে তৈরি করা হবে তা নিয়ে। নিচে এই দুটি পদ্ধতির বিস্তারিত বর্ণনা দেওয়া হলো।


Code First পদ্ধতি

Code First পদ্ধতিতে, ডেটাবেস মডেল প্রথমে কোডে লেখা হয়। অর্থাৎ, আপনি প্রথমে ক্লাস তৈরি করেন এবং সেগুলোকে ডেটাবেস টেবিলের সাথে ম্যাপ করেন। এরপর EF Core (Entity Framework Core) এর মাধ্যমে ডেটাবেস তৈরি করা হয়।

Code First এর বৈশিষ্ট্য

  • মডেল ভিত্তিক ডিজাইন: আপনি প্রথমে C# ক্লাস তৈরি করেন এবং সেগুলোকে ডেটাবেস টেবিল হিসেবে ব্যবহার করেন।
  • মাইগ্রেশন ব্যবহার করা হয়: ডেটাবেস স্কিমা পরিবর্তন করতে migrations ব্যবহার করা হয়। EF Core কোডে পরিবর্তন অনুসরণ করে ডেটাবেস আপডেট করতে সহায়তা করে।
  • ডেটাবেস সৃষ্টির সুবিধা: কোডের ভিত্তিতে ডেটাবেস তৈরি এবং পরিচালনা করা সহজ হয়।
  • ডেটাবেস ইঞ্জিনের উপর নির্ভরশীলতা কম: ডেটাবেস পরিচালনার কাজ কোডের মধ্যে থাকে, তাই ডেটাবেসের কাঠামো পরিবর্তন করা সহজ হয়।

Code First ব্যবহার করার উদাহরণ

ধরা যাক, আপনি একটি 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 পদ্ধতি

Database First পদ্ধতিতে, ডেটাবেস প্রথমে তৈরি করা হয় এবং তারপর ডেটাবেসের কাঠামো অনুযায়ী C# ক্লাস (Model) তৈরি করা হয়। এতে, ডেটাবেসের উপস্থিতির উপর ভিত্তি করে কোড জেনারেট করা হয়।

Database First এর বৈশিষ্ট্য

  • ডেটাবেস ভিত্তিক ডিজাইন: ডেটাবেস প্রথমে তৈরি করা হয় এবং তারপরে ডেটাবেসের স্কিমা অনুযায়ী ক্লাস তৈরি করা হয়।
  • ডেটাবেসের আগের কাঠামো অনুসরণ করা হয়: যখন ডেটাবেস ইতিমধ্যেই তৈরি থাকে, তখন ক্লাসগুলো সেই ডেটাবেস স্কিমা অনুসারে তৈরি করা হয়।
  • SCHEMA থেকে কোড জেনারেট করা: ডেটাবেসের টেবিল, ভিউ এবং স্টোরড প্রোসিডিউর অনুসারে ক্লাস এবং কনটেক্সট তৈরি করা হয়।
  • ডেটাবেস পরিবর্তন সহজ: যেহেতু ডেটাবেসের কাঠামো আগে থেকেই রয়েছে, ডেটাবেস স্কিমার পরিবর্তন সহজভাবে কোডে প্রতিফলিত হয়।

Database First ব্যবহার করার উদাহরণ

ধরা যাক, আপনি একটি ডেটাবেস তৈরি করেছেন এবং সেটির সাথে মডেল ক্লাস জেনারেট করতে চান। ডেটাবেসের টেবিলগুলি থেকে ক্লাস জেনারেট করতে EF Core Scaffold ব্যবহার করা হয়।

ডেটাবেস থেকে ক্লাস জেনারেট করার জন্য কমান্ড:

dotnet ef dbcontext scaffold "ConnectionString" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models

এতে Products টেবিলের জন্য Product ক্লাস তৈরি হয়ে যাবে। DbContext ক্লাসও তৈরি হবে, যেটি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করবে।


Code First এবং Database First এর মধ্যে পার্থক্য

বৈশিষ্ট্যCode FirstDatabase First
ডেটাবেসের শুরুকোডের মাধ্যমে ডেটাবেস তৈরি করা হয়।ডেটাবেস আগে থেকেই তৈরি থাকে।
ডেটাবেস ডিজাইনকোডে মডেল ক্লাস তৈরি করা হয়।ডেটাবেসের স্কিমা অনুযায়ী কোড তৈরি হয়।
মাইগ্রেশন ব্যবহৃত হয়মাইগ্রেশন ব্যবহার করে ডেটাবেস আপডেট করা হয়।ডেটাবেস তৈরি হয়ে গেলে কোড জেনারেট করা হয়।
ডেটাবেস টেবিল কাস্টমাইজেশনকোডের মধ্যে টেবিল কাস্টমাইজ করা হয়।ডেটাবেসের টেবিলের কাস্টমাইজেশন আগে থেকেই করা থাকে।
ফ্লেক্সিবিলিটিবেশি ফ্লেক্সিবিলিটি, ডেটাবেস এবং কোডের কাঠামো একত্রে কন্ট্রোল করা যায়।কম ফ্লেক্সিবিলিটি, কারণ ডেটাবেস আগে থেকেই তৈরি থাকে।

কখন কোন পদ্ধতি ব্যবহার করবেন

  • Code First পদ্ধতি ব্যবহার করুন যখন:
    • নতুন অ্যাপ্লিকেশন তৈরি করছেন এবং ডেটাবেস স্কিমা আপনার কোডের সাথে সামঞ্জস্যপূর্ণ করতে চান।
    • ডেটাবেসের কাঠামো পরিবর্তন করতে চান এবং সেই পরিবর্তনগুলো কোডে মাইগ্রেট করতে চান।
  • Database First পদ্ধতি ব্যবহার করুন যখন:
    • ডেটাবেস ইতিমধ্যেই প্রস্তুত এবং আপনি সেই ডেটাবেসের সাথে যুক্ত মডেল এবং কোড তৈরি করতে চান।
    • পূর্ববর্তী ডেটাবেস কাঠামোর সঙ্গে কাজ করতে চান, যেমন বিদ্যমান ডেটাবেসে কাজ করতে গেলে।

Code First এবং Database First উভয় পদ্ধতিই Entity Framework Core এর শক্তিশালী ফিচার, এবং আপনার প্রজেক্টের প্রয়োজন অনুযায়ী যে কোন পদ্ধতি ব্যবহার করা যেতে পারে।

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

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

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

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