LINQ (Language Integrated Query) হল .NET ফ্রেমওয়ার্কে একটি শক্তিশালী টুল যা আপনাকে C# বা VB.NET কোডের মধ্যে সরাসরি ডেটা কুয়েরি করতে সহায়তা করে। LINQ ব্যবহার করে আপনি ডেটাবেস, XML, বা ইন-মেমরি কালেকশনগুলোর উপরে কুয়েরি লিখতে পারেন। এর মাধ্যমে আপনি SQL বা অন্য কোনো ডেটাবেস কুয়েরি ভাষার মতোই C# ভাষায় ডেটা রিট্রাইভ, ফিল্টার, গ্রুপ বা অর্ডার করতে পারেন।
LINQ এর প্রধান সুবিধা হল যে, এটি এক ধরনের টাইপ-সেফ (Type-Safe) কুয়েরি লেখা প্রক্রিয়া, যা আপনাকে কম্পাইল টাইমে ভুল চিহ্নিত করতে সহায়তা করে।
LINQ দুটি প্রধান প্রকারে বিভক্ত:
LINQ এ কুয়েরি লেখার জন্য দুটি প্রধান সিনট্যাক্স ব্যবহার করা হয়:
Query Syntax খুবই SQL-এর মতো। এটি সাধারণত ডেটা ফিল্টারিং, গ্রুপিং বা অর্ডার করার জন্য সহজ এবং পড়তে সুবিধাজনক।
var result = from student in students
where student.Age > 18
orderby student.Name
select student;
উপরের উদাহরণে, students
কালেকশন থেকে সকল ছাত্রকে নির্বাচন করা হয়েছে যাদের বয়স ১৮ এর বেশি, এবং তারপর তাদের নাম অনুসারে সাজানো হয়েছে।
Method Syntax LINQ এর মেথড কলিং এর মাধ্যমে কুয়েরি লেখার একটি পদ্ধতি। এটি একটু বেশি কোডেড এবং অনেক ক্ষেত্রে LINQ এর মেথডগুলোর উপযোগিতা বেশি হয়।
var result = students.Where(s => s.Age > 18)
.OrderBy(s => s.Name)
.Select(s => s);
এখানে Where
, OrderBy
, এবং Select
মেথড ব্যবহার করা হয়েছে, যা একই কাজ Query Syntax এর মতোই করে।
LINQ-এ সাধারণত যে সব অপারেশন ব্যবহার করা হয় তা নিচে ব্যাখ্যা করা হল:
Where: ডেটা ফিল্টার করার জন্য ব্যবহৃত হয়।
var adults = students.Where(s => s.Age > 18);
Select: ডেটার নির্দিষ্ট অংশ নির্বাচন করার জন্য ব্যবহৃত হয়।
var studentNames = students.Select(s => s.Name);
OrderBy: ডেটা সাজানোর জন্য ব্যবহৃত হয়।
var orderedStudents = students.OrderBy(s => s.Name);
GroupBy: ডেটাকে গ্রুপে ভাগ করার জন্য ব্যবহৃত হয়।
var studentsGroupedByAge = students.GroupBy(s => s.Age);
Join: দুটি ডেটা কালেকশনকে একত্রিত করার জন্য ব্যবহৃত হয়।
var studentCourses = from student in students
join course in courses on student.CourseId equals course.Id
select new { student.Name, course.Name };
First: প্রথম উপাদান নির্বাচন করে।
var firstStudent = students.First();
ToList: কুয়েরি ফলাফলকে একটি লিস্টে রূপান্তরিত করে।
var studentList = students.Where(s => s.Age > 18).ToList();
LINQ এবং Entity Framework একসাথে ব্যবহৃত হয় ডেটাবেস কুয়েরি করার জন্য। এখানে LINQ কুয়েরি Entity Framework এর মাধ্যমে ডেটাবেসে পাঠানো হয়, এবং এটি SQL কুয়েরিতে রূপান্তরিত হয়ে ডেটাবেসে কার্যকর হয়।
var students = dbContext.Students
.Where(s => s.Age > 18)
.OrderBy(s => s.Name)
.ToList();
এখানে dbContext.Students
Entity Framework এর মাধ্যমে ডেটাবেসের Students
টেবিলকে রেফার করে এবং LINQ কুয়েরি ডেটাবেসের উপরে কার্যকর হয়।
LINQ .NET এর একটি শক্তিশালী বৈশিষ্ট্য যা ডেটাবেস, ইন-মেমরি কালেকশন এবং XML ফাইলের মতো ডেটা সোর্সের উপর কার্যকর কুয়েরি চালাতে সাহায্য করে। এটি Query Syntax এবং Method Syntax এর মাধ্যমে লেখা যায় এবং এতে ডেটা ফিল্টারিং, গ্রুপিং, অর্ডারিং এবং জয়নিং এর মতো অপারেশন সমর্থিত। LINQ-এর মাধ্যমে ডেটা আরো সহজ, টাইপ-সেফ এবং কার্যকরভাবে প্রক্রিয়া করা সম্ভব।
common.read_more