Microsoft Technologies SQLite এবং Entity Framework Core ব্যবহার করে Local Data Storage গাইড ও নোট

439

SQLite এবং Entity Framework Core (EF Core) ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনে স্থানীয় (local) ডেটা স্টোরেজ ব্যবস্থাপনা করতে পারবেন। SQLite একটি হালকা ওজনের, ফাইল-ভিত্তিক ডেটাবেস সিস্টেম, যা ডেস্কটপ এবং মোবাইল অ্যাপ্লিকেশনগুলির জন্য খুবই উপযোগী। Entity Framework Core (EF Core) হলো একটি ORM (Object-Relational Mapper) যা ডেটাবেসের সাথে কাজ করার জন্য একটি অবজেক্ট-ওরিয়েন্টেড অ্যাপ্রোচ ব্যবহার করে।

এই টিউটোরিয়ালে SQLite এবং Entity Framework Core ব্যবহার করে লোকাল ডেটা স্টোরেজ সেটআপ এবং ব্যবহারের প্রক্রিয়া দেখানো হবে।


ধাপ ১: প্রয়োজনীয় প্যাকেজ ইনস্টল করা

প্রথমেই আপনাকে SQLite এবং Entity Framework Core এর জন্য প্রয়োজনীয় প্যাকেজগুলো ইনস্টল করতে হবে।

  1. Visual Studio তে আপনার প্রজেক্ট ওপেন করুন।
  2. NuGet Package Manager থেকে SQLite এবং EF Core প্যাকেজগুলো ইনস্টল করুন।

কমান্ড লাইনে এটি ইনস্টল করতে:

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Design

ধাপ ২: DbContext এবং Entity তৈরি করা

EF Core ব্যবহার করতে হলে আপনাকে DbContext এবং Entity ক্লাস তৈরি করতে হবে।

উদাহরণ: Entity Class তৈরি

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

উদাহরণ: DbContext Class তৈরি

using Microsoft.EntityFrameworkCore;

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

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

এখানে:

  • Product হলো একটি সিম্পল Entity class, যেখানে একটি পণ্যের ID, নাম এবং দাম রয়েছে।
  • AppDbContext হলো EF Core DbContext ক্লাস, যা ডেটাবেসের টেবিল এবং ডেটা সংক্রান্ত কার্যাবলী পরিচালনা করবে।

ধাপ ৩: SQLite ডেটাবেস সেটআপ

এখন আমাদের SQLite ডেটাবেস ফাইল তৈরি করতে হবে এবং তা EF Core এর সাথে সংযোগ করতে হবে।

উদাহরণ: ডেটাবেস কনফিগারেশন

public class Program
{
    public static void Main(string[] args)
    {
        var options = new DbContextOptionsBuilder<AppDbContext>()
            .UseSqlite("Data Source=localdb.sqlite")
            .Options;

        using (var context = new AppDbContext(options))
        {
            context.Database.EnsureCreated();  // ডেটাবেস তৈরি করবে (যদি না থাকে)
            AddSampleData(context);  // কিছু ডেটা যোগ করা
        }
    }

    private static void AddSampleData(AppDbContext context)
    {
        if (!context.Products.Any())
        {
            context.Products.AddRange(
                new Product { Name = "Apple", Price = 1.2m },
                new Product { Name = "Banana", Price = 0.5m }
            );
            context.SaveChanges();
        }
    }
}

এখানে:

  • UseSqlite: এই ফাংশনটি SQLite ডেটাবেস ফাইলের সাথে সংযোগ স্থাপন করতে ব্যবহৃত হয়।
  • EnsureCreated: এটি ডেটাবেস তৈরি করবে যদি তা পূর্বে তৈরি না থাকে।
  • AddSampleData: কিছু ডেটা যোগ করার জন্য ব্যবহার করা হয়েছে।

ধাপ ৪: মাইগ্রেশন ব্যবহার করা (ঐচ্ছিক)

Entity Framework Core মাইগ্রেশন ব্যবহার করে আপনি ডেটাবেস স্কিমা ম্যানেজ করতে পারেন।

  1. Migration তৈরি করুন:
dotnet ef migrations add InitialCreate
  1. ডেটাবেস আপডেট করুন:
dotnet ef database update

এটি InitialCreate নামক মাইগ্রেশন তৈরি করবে এবং ডেটাবেসটি আপডেট করবে।


ধাপ ৫: ডেটা রিড এবং রাইট অপারেশন

এখন, ডেটাবেসে ডেটা রিড এবং রাইট করতে DbContext ব্যবহার করতে পারেন।

উদাহরণ: ডেটা রিড

public static void DisplayProducts(AppDbContext context)
{
    var products = context.Products.ToList();
    foreach (var product in products)
    {
        Console.WriteLine($"ID: {product.Id}, Name: {product.Name}, Price: {product.Price}");
    }
}

উদাহরণ: ডেটা রাইট

public static void AddProduct(AppDbContext context, string name, decimal price)
{
    var newProduct = new Product { Name = name, Price = price };
    context.Products.Add(newProduct);
    context.SaveChanges();
}

ধাপ ৬: সম্পূর্ণ কোডের উদাহরণ

using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

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

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

public class Program
{
    public static void Main(string[] args)
    {
        var options = new DbContextOptionsBuilder<AppDbContext>()
            .UseSqlite("Data Source=localdb.sqlite")
            .Options;

        using (var context = new AppDbContext(options))
        {
            context.Database.EnsureCreated(); // Ensure the database is created

            // Add Sample Data
            if (!context.Products.Any())
            {
                context.Products.AddRange(
                    new Product { Name = "Apple", Price = 1.2m },
                    new Product { Name = "Banana", Price = 0.5m }
                );
                context.SaveChanges();
            }

            // Display products
            var products = context.Products.ToList();
            foreach (var product in products)
            {
                Console.WriteLine($"ID: {product.Id}, Name: {product.Name}, Price: {product.Price}");
            }

            // Add a new product
            AddProduct(context, "Orange", 0.8m);
        }
    }

    private static void AddProduct(AppDbContext context, string name, decimal price)
    {
        var newProduct = new Product { Name = name, Price = price };
        context.Products.Add(newProduct);
        context.SaveChanges();
    }
}

উপসংহার

SQLite এবং Entity Framework Core ব্যবহার করে লোকাল ডেটা স্টোরেজ খুবই সহজ এবং কার্যকরী। EF Core ORM এর মাধ্যমে আপনি ডেটাবেসের সাথে অবজেক্ট-ওরিয়েন্টেড ম্যানিপুলেশন করতে পারেন, এবং SQLite হালকা ওজনের ডেটাবেস হিসেবে ব্যবহার করা যায়, বিশেষত ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য। EF Core-এর মাইগ্রেশন, ডেটাবেস তৈরি এবং ডেটা অপারেশনগুলো খুবই সুবিধাজনক, যা ডেভেলপমেন্টের সময় পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...