Entity Framework (EF) হলো একটি Object Relational Mapping (ORM) টুল, যা ডেভেলপারদের ডেটাবেসের সাথে যোগাযোগ সহজ করতে সাহায্য করে। এটি ডেটাবেস টেবিলকে ক্লাস এবং কলামকে প্রপার্টি হিসেবে উপস্থাপন করে। EF ব্যবহার করে আমরা দুটি প্রধান পদ্ধতিতে ডেটাবেসের সঙ্গে কাজ করতে পারি: Code-First Approach এবং Database-First Approach।
Code-First Approach ব্যবহার করে আমরা প্রথমে ক্লাস তৈরি করি, যা ডেটাবেসের টেবিল হিসেবে ব্যবহৃত হয়। এর মাধ্যমে ডেভেলপাররা ডেটাবেসের ওপর কম নির্ভরশীল হয়ে কোড থেকে সরাসরি ডেটাবেস তৈরি এবং ম্যানেজ করতে পারেন।
Migration
এর মাধ্যমে সেসব পরিবর্তন পরিচালনা করা যায়।ধরা যাক আমরা একটি Student টেবিল তৈরি করতে চাই।
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Class { get; set; }
}
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
}
Add-Migration
এবং Update-Database
কমান্ড ব্যবহার করে ডেটাবেস তৈরি করা হয়।Add-Migration InitialCreate
Update-Database
Database-First Approach-এ প্রথমে ডেটাবেস তৈরি করা হয়, এবং তারপর Entity Framework ডেটাবেস থেকে মডেল জেনারেট করে। এটি বিদ্যমান ডেটাবেস নিয়ে কাজ করার জন্য আদর্শ।
ধরা যাক একটি বিদ্যমান ডেটাবেস রয়েছে এবং আমরা EF ব্যবহার করতে চাই।
Student
নামে একটি টেবিল তৈরি করুন।CREATE TABLE Students (
Id INT PRIMARY KEY,
Name NVARCHAR(50),
Class NVARCHAR(20)
);
Add New Item
> Data
> ADO.NET Entity Data Model
নির্বাচন করুন। Database-First Approach সিলেক্ট করে ডেটাবেস কানেকশন কনফিগার করুন।public partial class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Class { get; set; }
}
বৈশিষ্ট্য | Code-First Approach | Database-First Approach |
---|---|---|
ডেটাবেস প্রাথমিক অবস্থা | কোড থেকে ডেটাবেস তৈরি করা হয় | বিদ্যমান ডেটাবেস থেকে মডেল তৈরি হয় |
কোড এবং ডেটাবেস নিয়ন্ত্রণ | মডেলের উপর সম্পূর্ণ নিয়ন্ত্রণ | ডেটাবেস স্কিমা পূর্ব নির্ধারিত |
Migration | সহজে ডেটাবেস পরিবর্তন করা যায় | ডেটাবেস পরিবর্তন মডেলে প্রতিফলিত করা কঠিন |
ব্যবহারিক ক্ষেত্র | নতুন ডেটাবেস তৈরি করার জন্য উপযুক্ত | বিদ্যমান ডেটাবেসের জন্য উপযুক্ত |
Code-First Approach নতুন অ্যাপ্লিকেশন এবং ডেটাবেসের জন্য কার্যকর, যেখানে ডেভেলপারদের সম্পূর্ণ নিয়ন্ত্রণ প্রয়োজন। অন্যদিকে, Database-First Approach বিদ্যমান ডেটাবেস নিয়ে কাজ করার জন্য সবচেয়ে উপযুক্ত। প্রকল্পের প্রয়োজনীয়তা এবং ডেভেলপমেন্ট পরিবেশ অনুযায়ী সঠিক পদ্ধতি নির্বাচন করতে হবে।
common.read_more