LINQ ব্যবহার করে ফিল্টার, গ্রুপিং, এবং অর্ডারিং

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) LINQ (Language Integrated Query) এবং Entity Framework |
183
183

LINQ (Language Integrated Query) একটি শক্তিশালী কুয়েরি প্রযুক্তি যা C# এবং .NET এ ডেটা কুয়েরি করতে ব্যবহৃত হয়। Entity Framework এর সাথে LINQ ব্যবহার করে আপনি ডেটাবেসের ডেটা সহজে ফিল্টার, গ্রুপ, এবং অর্ডার করতে পারেন। এটি ডেটাবেসে সিলেক্ট, ইনসার্ট, আপডেট এবং ডিলিট অপারেশনগুলির জন্য একটি অত্যন্ত কার্যকরী পদ্ধতি।

এখানে LINQ দিয়ে ফিল্টার, গ্রুপিং এবং অর্ডারিং কিভাবে করা যায় তা বিস্তারিতভাবে আলোচনা করা হবে।


LINQ ব্যবহার করে ফিল্টার (Filtering)

LINQ-এ ফিল্টারিং করতে Where মেথড ব্যবহার করা হয়, যা নির্দিষ্ট শর্তের ভিত্তিতে ডেটা নির্বাচন করতে সাহায্য করে।

উদাহরণ: একটি নির্দিষ্ট বয়সের ছাত্রদের ফিল্টার করা

ধরা যাক, আমরা একটি Student Entity Class ব্যবহার করছি এবং আমরা তাদের মধ্যে ২০ বছরের বেশি বয়সী ছাত্রদের ফিল্টার করতে চাই।

using (var context = new SchoolContext())
{
    var studentsAbove20 = context.Students
                                 .Where(s => s.Age > 20)  // বয়স ২০ এর বেশি
                                 .ToList();  // লিস্টে রিটার্ন হবে

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

এখানে:

  • Where মেথডের মাধ্যমে Age > 20 শর্তে সমস্ত ছাত্র ফিল্টার করা হয়েছে।

LINQ ব্যবহার করে গ্রুপিং (Grouping)

LINQ-এ গ্রুপিং করতে GroupBy মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট একটি প্রপার্টির ভিত্তিতে ডেটাকে গ্রুপ করে।

উদাহরণ: ছাত্রদের বয়স অনুযায়ী গ্রুপ করা

ধরা যাক, আমরা ছাত্রদের বয়স অনুযায়ী গ্রুপ করতে চাই।

using (var context = new SchoolContext())
{
    var studentsGroupedByAge = context.Students
                                      .GroupBy(s => s.Age)  // বয়স অনুযায়ী গ্রুপ
                                      .ToList();

    foreach (var group in studentsGroupedByAge)
    {
        Console.WriteLine($"Age Group: {group.Key}");  // গ্রুপের বয়স
        foreach (var student in group)
        {
            Console.WriteLine($"Name: {student.Name}");
        }
    }
}

এখানে:

  • GroupBy মেথড ব্যবহার করে ছাত্রদের Age প্রপার্টির ভিত্তিতে গ্রুপিং করা হয়েছে।
  • group.Key দ্বারা গ্রুপের বয়স (age) প্রিন্ট করা হচ্ছে।

LINQ ব্যবহার করে অর্ডারিং (Ordering)

LINQ-এ অর্ডারিং করতে OrderBy এবং OrderByDescending মেথড ব্যবহার করা হয়। OrderBy ব্যবহৃত হলে ডেটা অ্যাসেন্ডিং অর্ডারে সাজানো হয়, আর OrderByDescending ব্যবহৃত হলে ডেটা ডেসেন্ডিং অর্ডারে সাজানো হয়।

উদাহরণ: ছাত্রদের নাম অনুযায়ী অর্ডার করা

ধরা যাক, আমরা ছাত্রদের নাম অনুযায়ী অ্যাসেন্ডিং অর্ডারে সাজাতে চাই।

using (var context = new SchoolContext())
{
    var studentsOrderedByName = context.Students
                                       .OrderBy(s => s.Name)  // নাম অনুযায়ী অ্যাসেন্ডিং
                                       .ToList();

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

এখানে:

  • OrderBy মেথডের মাধ্যমে ছাত্রদের নাম অনুযায়ী অ্যাসেন্ডিং অর্ডারে সাজানো হয়েছে।

উদাহরণ: ছাত্রদের বয়স অনুযায়ী ডেসেন্ডিং অর্ডার

ধরা যাক, আমরা ছাত্রদের বয়স অনুযায়ী ডেসেন্ডিং অর্ডারে সাজাতে চাই।

using (var context = new SchoolContext())
{
    var studentsOrderedByAgeDescending = context.Students
                                               .OrderByDescending(s => s.Age)  // বয়স অনুযায়ী ডেসেন্ডিং
                                               .ToList();

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

এখানে:

  • OrderByDescending মেথডের মাধ্যমে ছাত্রদের বয়স অনুযায়ী ডেসেন্ডিং অর্ডারে সাজানো হয়েছে।

LINQ ব্যবহার করে একাধিক অপারেশন (Combining Multiple Operations)

LINQ-এ আপনি একাধিক অপারেশন যেমন ফিল্টার, গ্রুপিং এবং অর্ডারিং একসাথে ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে প্রথমে ছাত্রদের বয়স অনুযায়ী গ্রুপ করা হচ্ছে এবং তারপর প্রতিটি গ্রুপের ছাত্রদের নাম অনুযায়ী অ্যাসেন্ডিং অর্ডারে সাজানো হচ্ছে।

using (var context = new SchoolContext())
{
    var groupedAndOrderedStudents = context.Students
                                           .GroupBy(s => s.Age)  // বয়স অনুযায়ী গ্রুপ
                                           .OrderBy(g => g.Key)  // গ্রুপের বয়স অনুযায়ী অর্ডার
                                           .Select(g => new
                                           {
                                               Age = g.Key,
                                               Students = g.OrderBy(s => s.Name)  // নাম অনুযায়ী অর্ডার
                                           })
                                           .ToList();

    foreach (var group in groupedAndOrderedStudents)
    {
        Console.WriteLine($"Age Group: {group.Age}");
        foreach (var student in group.Students)
        {
            Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
        }
    }
}

এখানে:

  • GroupBy দ্বারা ছাত্রদের বয়স অনুযায়ী গ্রুপিং করা হয়েছে।
  • OrderBy দিয়ে গ্রুপগুলিকে বয়স অনুযায়ী সাজানো হয়েছে।
  • Select মেথড ব্যবহার করে প্রতিটি গ্রুপের ছাত্রদের নাম অনুযায়ী অ্যাসেন্ডিং অর্ডারে সাজানো হয়েছে।

উপসংহার

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

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

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

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

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