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 এর জন্য প্রয়োজনীয় প্যাকেজগুলো ইনস্টল করতে হবে।
- Visual Studio তে আপনার প্রজেক্ট ওপেন করুন।
- 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 মাইগ্রেশন ব্যবহার করে আপনি ডেটাবেস স্কিমা ম্যানেজ করতে পারেন।
- Migration তৈরি করুন:
dotnet ef migrations add InitialCreate
- ডেটাবেস আপডেট করুন:
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-এর মাইগ্রেশন, ডেটাবেস তৈরি এবং ডেটা অপারেশনগুলো খুবই সুবিধাজনক, যা ডেভেলপমেন্টের সময় পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করতে সহায়ক।
Read more