মডেল তৈরি এবং ডাটাবেজের সাথে ম্যাপিং

Web Development - এএসপি ডট (ASP.Net) - ডাটাবেজ ইন্টিগ্রেশন (Entity Framework Core) |

ASP.Net অ্যাপ্লিকেশনে মডেল হল একটি ক্লাস যা ডাটাবেজ টেবিলের সাথে সম্পর্কিত ডেটা ধারণ করে। Entity Framework Core (EF Core) ব্যবহার করে আপনি মডেল তৈরি করতে পারেন এবং তা ডাটাবেজ টেবিলের সাথে ম্যাপ করতে পারেন। EF Core একটি ORM (Object Relational Mapping) ফ্রেমওয়ার্ক, যা আপনার C# মডেল ক্লাসগুলোকে ডাটাবেজ টেবিলের সাথে সংযুক্ত করে।

এই টিউটোরিয়ালে আমরা মডেল তৈরি, ডাটাবেজের সাথে ম্যাপিং এবং ডাটাবেজে CRUD (Create, Read, Update, Delete) অপারেশন কীভাবে করতে হয় তা আলোচনা করব।


১. মডেল তৈরি করা

প্রথমে, মডেল ক্লাস তৈরি করতে হয় যা ডাটাবেজ টেবিলের প্রতিনিধিত্ব করবে।

উদাহরণ:

ধরা যাক, আমাদের একটি Product নামের মডেল ক্লাস তৈরি করতে হবে যা একটি প্রোডাক্টের নাম, দাম এবং স্টক কোয়ান্টিটি ধারণ করবে।

public class Product
{
    public int Id { get; set; }  // Primary Key
    public string Name { get; set; }  // Product Name
    public decimal Price { get; set; }  // Product Price
    public int Stock { get; set; }  // Product Stock Quantity
}

এখানে Product ক্লাসটি একটি প্রোডাক্ট টেবিলের প্রতিনিধিত্ব করছে। Id ফিল্ডটি ডাটাবেজের প্রাইমারি কি হিসেবে ব্যবহৃত হবে।


২. DbContext ক্লাস তৈরি করা

ডাটাবেজের সাথে যোগাযোগ করতে DbContext ক্লাস ব্যবহার করা হয়। এটি EF Core এর মূল অংশ, যা ডাটাবেজের সাথে CRUD অপারেশন পরিচালনা করে।

উদাহরণ:

ApplicationDbContext ক্লাসে ডাটাবেজের সাথে সংযোগ স্থাপন করা হয়।

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
}

এখানে, DbSet<Product> ফিল্ডটি Product মডেল ক্লাসের টেবিলের প্রতিনিধিত্ব করছে। যখন EF Core কনফিগারেশন করা হয়, তখন এই DbSet টেবিলের রেকর্ডগুলোর সাথে CRUD অপারেশন পরিচালনা করবে।


৩. ডাটাবেজ কনফিগারেশন এবং Migration

ডাটাবেজ কনফিগার করার জন্য প্রথমে Connection String সেট করতে হবে এবং পরে ডাটাবেজ তৈরি করতে Migration কমান্ড ব্যবহার করা হবে।

১. Connection String সেট করা

appsettings.json ফাইলে ডাটাবেজ কনফিগারেশন এবং সংযোগ সেট করুন।

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ProductDb;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

এখানে, DefaultConnectionlocaldb ব্যবহার করা হয়েছে, তবে আপনি আপনার ডাটাবেজ সার্ভার এবং নাম পরিবর্তন করতে পারেন।

২. DbContext কনফিগারেশন

Startup.cs ফাইলে DbContext কনফিগার করুন যাতে ডাটাবেজের সাথে সংযোগ স্থাপন করা যায়।

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

এখানে, UseSqlServer মেথডের মাধ্যমে SQL Server ডাটাবেজ ব্যবহার করা হচ্ছে।

৩. Migration তৈরি করা

এখন, Migration তৈরি করতে হবে যাতে আপনার মডেল ক্লাসকে ডাটাবেজের টেবিলের সাথে ম্যাপ করা যায়। টার্মিনাল বা প্যাকেজ ম্যানেজার কনসোল থেকে নিম্নলিখিত কমান্ড চালান:

dotnet ef migrations add InitialCreate
dotnet ef database update

এখানে, প্রথম কমান্ডটি ডাটাবেজের জন্য একটি মাইগ্রেশন তৈরি করবে এবং দ্বিতীয় কমান্ডটি ডাটাবেজে মাইগ্রেশন চালিয়ে টেবিল তৈরি করবে।


৪. CRUD অপারেশন (Create, Read, Update, Delete)

১. Create (ডেটা ইনসার্ট করা)

ডাটাবেজে নতুন রেকর্ড ইনসার্ট করতে Add মেথড ব্যবহার করা হয়।

public class ProductController : Controller
{
    private readonly ApplicationDbContext _context;

    public ProductController(ApplicationDbContext context)
    {
        _context = context;
    }

    [HttpPost]
    public IActionResult Create(Product product)
    {
        if (ModelState.IsValid)
        {
            _context.Add(product);
            _context.SaveChanges();  // ডাটাবেজে সংরক্ষণ
            return RedirectToAction(nameof(Index));
        }
        return View(product);
    }
}

এখানে, _context.Add(product) ব্যবহার করে নতুন প্রোডাক্ট ডাটাবেজে ইনসার্ট করা হচ্ছে।

২. Read (ডেটা পড়া)

ডাটাবেজ থেকে ডেটা পড়তে Find বা ToList মেথড ব্যবহার করা হয়।

public IActionResult Index()
{
    var products = _context.Products.ToList();  // সমস্ত প্রোডাক্ট নিয়ে আসা
    return View(products);
}

এখানে _context.Products.ToList() ব্যবহার করে সমস্ত প্রোডাক্টগুলো ডাটাবেজ থেকে নিয়ে আসা হচ্ছে।

৩. Update (ডেটা আপডেট করা)

ডেটা আপডেট করতে Update মেথড ব্যবহার করা হয়।

[HttpPost]
public IActionResult Edit(int id, Product product)
{
    if (id != product.Id)
    {
        return NotFound();
    }

    if (ModelState.IsValid)
    {
        _context.Update(product);  // প্রোডাক্ট আপডেট করা
        _context.SaveChanges();
        return RedirectToAction(nameof(Index));
    }
    return View(product);
}

এখানে, _context.Update(product) ব্যবহার করে প্রোডাক্টের ডেটা আপডেট করা হচ্ছে।

৪. Delete (ডেটা মুছে ফেলা)

ডেটা মুছে ফেলতে Remove মেথড ব্যবহার করা হয়।

public IActionResult Delete(int id)
{
    var product = _context.Products.Find(id);  // ডাটাবেজ থেকে প্রোডাক্ট খুঁজে বের করা
    if (product == null)
    {
        return NotFound();
    }

    _context.Products.Remove(product);  // প্রোডাক্ট মুছে ফেলা
    _context.SaveChanges();
    return RedirectToAction(nameof(Index));
}

এখানে, _context.Products.Remove(product) ব্যবহার করে প্রোডাক্ট মুছে ফেলা হচ্ছে।


সারাংশ

ASP.Net MVC অ্যাপ্লিকেশনে Entity Framework Core ব্যবহার করে মডেল তৈরি করা এবং ডাটাবেজের সাথে ম্যাপিং করা খুবই সহজ। মডেল ক্লাসে ডেটা কনফিগারেশন এবং DbContext এর মাধ্যমে CRUD অপারেশন করা যায়। EF Core এর Migration ফিচার ডাটাবেজ টেবিলগুলি তৈরি এবং আপডেট করতে সাহায্য করে।

Content added By
Promotion