common.skill

ডাটাবেস থেকে ডেটা ফেচ করা

Microsoft Technologies - লিংক (LinQ) LINQ to SQL এবং ডাটাবেস অপারেশন (LINQ to SQL and Database Operations) |
182
182

LINQ ব্যবহার করে আপনি ডাটাবেস থেকে ডেটা ফেচ (fetch) করতে পারেন, বিশেষত যখন আপনি Entity Framework (EF) ব্যবহার করেন। Entity Framework একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডাটাবেস এবং .NET অবজেক্টের মধ্যে ম্যাপিং তৈরি করে। এটি ডাটাবেস থেকে ডেটা আনা, আপডেট করা, এবং মুছে ফেলা সহজ করে তোলে। LINQ এর মাধ্যমে Entity Framework থেকে ডেটা ফেচ করার প্রক্রিয়া খুবই সরল এবং প্রাকৃতিক।


Entity Framework এর সাথে LINQ ব্যবহার

Entity Framework (EF) এর সাহায্যে LINQ ব্যবহার করে আপনি ডাটাবেসের টেবিল থেকে ডেটা রিট্রাইভ (retrieve) করতে পারেন। EF ডাটাবেসের টেবিলগুলিকে ক্লাস হিসেবে রূপান্তরিত করে, এবং LINQ এর মাধ্যমে আপনি সেই ক্লাসগুলোতে কোয়েরি করতে পারেন।


ডেটা ফেচ করার জন্য প্রস্তুতি

ডাটাবেস থেকে ডেটা ফেচ করার জন্য নিচের প্রক্রিয়া অনুসরণ করতে হবে:

  1. Entity Framework ইনস্টল করা: Entity Framework Core ব্যবহার করার জন্য প্রথমে আপনি Microsoft.EntityFrameworkCore NuGet প্যাকেজ ইনস্টল করতে হবে।
  2. ডেটাবেস কনটেক্সট তৈরি: Entity Framework-এর কনটেক্সট ক্লাসে ডাটাবেসের টেবিলগুলো ম্যাপ করতে হবে।
  3. ডেটা ফেচ করার LINQ কোয়েরি লেখা: একবার কনটেক্সট এবং টেবিল তৈরি হয়ে গেলে, LINQ ব্যবহার করে ডেটা ফেচ করা যাবে।

Entity Framework কনটেক্সট তৈরি

DbContext ক্লাসটি EF Core-এ ডাটাবেসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়। এর মাধ্যমে টেবিলের প্রতিনিধিত্ব করা ক্লাসগুলোর সাথে যোগাযোগ করতে পারেন।

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Person> People { get; set; }  // DbSet যা 'People' টেবিলের প্রতিনিধিত্ব করে।

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // ডাটাবেস কনফিগারেশন
        optionsBuilder.UseSqlServer("Your_Connection_String");
    }
}

এখানে, Person হলো আপনার মডেল ক্লাস, যা টেবিলের প্রতিটি রেকর্ডের জন্য একটি অবজেক্ট তৈরি করে।


LINQ দিয়ে ডেটা ফেচ করা

একবার Entity Framework কনফিগার করা হয়ে গেলে, আপনি LINQ ব্যবহার করে ডাটাবেস থেকে ডেটা ফেচ করতে পারবেন। এখানে দুইটি সাধারণ উদাহরণ দেওয়া হল: LINQ Query Syntax এবং LINQ Method Syntax


LINQ Query Syntax দিয়ে ডেটা ফেচ

using (var context = new ApplicationDbContext())
{
    // Query Syntax ব্যবহার করে ডেটা ফেচ করা
    var query = from person in context.People
                where person.Age > 30
                select person;

    foreach (var person in query)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, context.People হল Person টেবিলের জন্য DbSet, এবং LINQ Query Syntax ব্যবহার করে Age ফিল্ডের মান ৩০ এর বেশি এমন রেকর্ডগুলো ফেচ করা হয়েছে।


LINQ Method Syntax দিয়ে ডেটা ফেচ

using (var context = new ApplicationDbContext())
{
    // Method Syntax ব্যবহার করে ডেটা ফেচ করা
    var query = context.People
                        .Where(p => p.Age > 30)
                        .ToList();  // ToList() এর মাধ্যমে রেজাল্ট ফেচ করা

    foreach (var person in query)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, Method Syntax ব্যবহৃত হয়েছে যেখানে Where() মেথড দিয়ে Age ফিল্ডের মান ৩০ এর বেশি এমন রেকর্ডগুলি ফিল্টার করা হয়েছে।


কিছু গুরুত্বপূর্ণ LINQ অপারেশন

FirstOrDefault (প্রথম রেকর্ড বের করা)

using (var context = new ApplicationDbContext())
{
    var person = context.People
                        .FirstOrDefault(p => p.Name == "Alice");

    if (person != null)
    {
        Console.WriteLine($"Found: {person.Name}, Age: {person.Age}");
    }
}

এখানে, FirstOrDefault() মেথড দিয়ে "Alice" নামের প্রথম রেকর্ড ফেচ করা হয়েছে। যদি রেকর্ড পাওয়া না যায়, তবে এটি null ফেরত দেবে।

SingleOrDefault (একক রেকর্ড)

using (var context = new ApplicationDbContext())
{
    var person = context.People
                        .SingleOrDefault(p => p.Name == "Bob");

    if (person != null)
    {
        Console.WriteLine($"Found: {person.Name}, Age: {person.Age}");
    }
}

এখানে, SingleOrDefault() মেথডটি নিশ্চিত করে যে শুধুমাত্র একটি রেকর্ড রয়েছে এবং সেটি ফেচ করে।

OrderBy (সাজানো)

using (var context = new ApplicationDbContext())
{
    var sortedPeople = context.People
                              .OrderBy(p => p.Age)
                              .ToList();

    foreach (var person in sortedPeople)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, OrderBy() মেথডটি Age ফিল্ডের উপর ভিত্তি করে ডেটা সাজিয়েছে।


নোট:

  1. ToList(): এটি IEnumerable<T> এর একটি লিস্টে পরিণত করে। যদি আপনি ডেটার উপর পরবর্তীতে অপারেশন করতে চান, তবে ToList() ব্যবহার করতে পারেন।
  2. AsNoTracking(): যদি শুধুমাত্র ডেটা রিড করতে চান এবং পরিবর্তন করতে চান না, তবে AsNoTracking() ব্যবহার করলে পারফরম্যান্স উন্নত হবে।
var people = context.People.AsNoTracking().ToList();

সারাংশ

LINQ এর মাধ্যমে Entity Framework ব্যবহার করে ডাটাবেস থেকে ডেটা ফেচ করা খুবই সহজ এবং কার্যকরী। LINQ-এর Query Syntax এবং Method Syntax উভয়ই ডেটার উপর বিভিন্ন ধরনের অপারেশন করার সুযোগ দেয়। আপনি বিভিন্ন মেথডের সাহায্যে ডেটা ফিল্টার, সাজানো এবং সংশোধন করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion