Entity Framework Core (EF Core) এর মাধ্যমে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য, প্রথমে আপনাকে DbContext
কনফিগার করতে হবে। DbContext
ক্লাসটি EF Core এর একটি কেন্দ্রীয় অংশ, যা ডেটাবেসের টেবিলগুলোকে সিস্টেমের মডেল ক্লাসে রূপান্তরিত করে। ASP.NET Core অ্যাপ্লিকেশনে EF DbContext কনফিগারেশন বেশ সহজ, তবে এর জন্য কয়েকটি স্টেপ অনুসরণ করতে হয়।
এখানে, ASP.NET Core অ্যাপ্লিকেশনে DbContext কনফিগার করার প্রক্রিয়া ব্যাখ্যা করা হলো।
DbContext
ক্লাস তৈরি করাপ্রথমেই আপনাকে একটি DbContext
ক্লাস তৈরি করতে হবে, যেখানে আপনি ডেটাবেসের টেবিল গুলোকে DbSet<T>
এর মাধ্যমে মডেল হিসেবে উল্লেখ করবেন।
ধরা যাক, আপনি একটি Student টেবিলের জন্য DbContext
ক্লাস তৈরি করতে চান।
public class ApplicationDbContext : DbContext
{
public DbSet<Student> Students { get; set; }
// Constructor to pass options to the base class
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
এখানে, DbSet<Student>
টেবিলটি আপনার Student মডেল ক্লাসের সাথে সম্পর্কিত। এর মাধ্যমে আপনি Student
সম্পর্কিত CRUD অপারেশন পরিচালনা করতে পারবেন।
Student
মডেল তৈরি করাএখন Student
মডেল ক্লাস তৈরি করতে হবে, যা ডেটাবেস টেবিলের কলামগুলোকে প্রতিনিধিত্ব করবে।
public class Student
{
public int Id { get; set; } // Primary Key
public string Name { get; set; }
public int Age { get; set; }
}
এখানে, Student
মডেলটি Id, Name, এবং Age নামে তিনটি প্রপার্টি ধারণ করছে।
DbContext
কনফিগার করা Startup.cs
বা Program.cs
এASP.NET Core অ্যাপ্লিকেশনটি Entity Framework Core কে সঠিকভাবে কনফিগার করার জন্য, আপনাকে Startup.cs
বা Program.cs
ফাইলে DbContext
ইনজেক্ট করতে হবে।
Startup.cs
ফাইলে কনফিগারেশনConfigureServices
মেথডে আপনি AddDbContext
মেথড ব্যবহার করে DbContext
কনফিগার করবেন এবং ডেটাবেসের সাথে সংযোগ স্থাপন করবেন।
public void ConfigureServices(IServiceCollection services)
{
// Set up DbContext with SQL Server connection string
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// Other service configurations...
services.AddControllersWithViews();
}
এখানে, UseSqlServer
ব্যবহার করা হয়েছে SQL Server ডেটাবেসের জন্য। আপনি যদি অন্য ডেটাবেস ব্যবহার করেন, যেমন PostgreSQL বা SQLite, তখন সেগুলোর জন্য সংশ্লিষ্ট কনফিগারেশন ব্যবহার করতে হবে।
appsettings.json
ফাইলে ডেটাবেস কানেকশন স্ট্রিং যোগ করাএখন আপনাকে appsettings.json
ফাইলে ডেটাবেস কানেকশন স্ট্রিং যোগ করতে হবে, যাতে DbContext
সঠিক ডেটাবেসে সংযোগ স্থাপন করতে পারে।
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=StudentDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
এখানে DefaultConnection
ডেটাবেসের কানেকশন স্ট্রিং। এটি আপনার অ্যাপ্লিকেশনটির ডেটাবেসের অবস্থান নির্দেশ করবে।
DbContext
কনফিগার করার পর, আপনাকে ডেটাবেসের স্কিমা সিঙ্ক করার জন্য মাইগ্রেশন করতে হবে। প্রথমে, আপনার মডেলগুলোর উপর ভিত্তি করে একটি মাইগ্রেশন তৈরি করুন।
dotnet ef migrations add InitialCreate
এটি একটি নতুন মাইগ্রেশন তৈরি করবে, যেটি আপনার Student মডেলকে ডেটাবেসের টেবিলের সাথে সিঙ্ক করবে।
dotnet ef database update
এটি ডেটাবেসের স্কিমা আপডেট করবে এবং আপনার টেবিলগুলো তৈরি করবে।
এখন আপনি DbContext
ক্লাস ব্যবহার করে ডেটাবেসের সাথে CRUD অপারেশন করতে পারবেন। উদাহরণস্বরূপ, একটি StudentService তৈরি করা যেখানে আপনি DbContext
ব্যবহার করে ডেটা অ্যাক্সেস করবেন।
public class StudentService
{
private readonly ApplicationDbContext _context;
public StudentService(ApplicationDbContext context)
{
_context = context;
}
public async Task AddStudentAsync(Student student)
{
_context.Students.Add(student);
await _context.SaveChangesAsync();
}
public async Task<List<Student>> GetAllStudentsAsync()
{
return await _context.Students.ToListAsync();
}
}
এখানে, AddStudentAsync
মেথডের মাধ্যমে নতুন ছাত্র ডেটাবেসে সংরক্ষণ করা হবে এবং GetAllStudentsAsync
মেথডের মাধ্যমে সমস্ত ছাত্রের তালিকা পাওয়া যাবে।
DbContext
কনফিগার করতে ASP.NET Core অ্যাপ্লিকেশনের Startup.cs
অথবা Program.cs
ফাইলে AddDbContext
মেথড ব্যবহার করতে হয়।DbContext
ক্লাসে DbSet<T>
ব্যবহার করে টেবিলের সাথে ইন্টারঅ্যাক্ট করা হয় এবং ডেটাবেসের পরিবর্তনগুলো মাইগ্রেশন এর মাধ্যমে আপডেট করা হয়।appsettings.json
ফাইলে রাখা হয়।common.read_more