LINQ to SQL হল LINQ (Language Integrated Query)-এর একটি প্রকার যা ডেটাবেসে কুয়েরি করার জন্য ব্যবহৃত হয়। এটি SQL Server ডেটাবেসের সাথে কাজ করতে সাহায্য করে এবং ডেটাবেসের টেবিলগুলোর উপর LINQ কুয়েরি লেখার সুবিধা প্রদান করে। LINQ to SQL ডেভেলপারদেরকে SQL কুয়েরি লিখে না গিয়ে .NET ভাষার মধ্যে ডেটাবেস অপারেশন পরিচালনা করার সুযোগ দেয়।
LINQ to SQL ব্যবহার করার মাধ্যমে আপনি Object-Relational Mapping (ORM) প্রক্রিয়ার সুবিধা পেতে পারেন, যেখানে ডেটাবেস টেবিলগুলো C# ক্লাস বা অবজেক্ট হিসেবে রূপান্তরিত হয়। এই পদ্ধতিতে, ডেভেলপারদেরকে SQL স্টেটমেন্টের পরিবর্তে সাধারণ .NET কোড ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করতে সহায়তা করা হয়।
LINQ to SQL ব্যবহার করতে হলে প্রথমে DataContext ক্লাসটি তৈরি করতে হবে, যা ডেটাবেসের সাথে যোগাযোগের জন্য ব্যবহৃত হবে। তারপর, ডেটাবেস টেবিলের প্রতিনিধিত্বকারী এনটিটি ক্লাস তৈরি করা হয়।
DataContext হল LINQ to SQL এর একটি মূল অংশ, যা ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটাবেস অপারেশন পরিচালনা করতে ব্যবহৃত হয়।
উদাহরণ:
public class NorthwindDataContext : DataContext
{
public Table<Customer> Customers;
public Table<Order> Orders;
public NorthwindDataContext(string connectionString) : base(connectionString)
{
}
}
এখানে Table<T>
হল LINQ to SQL এর ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।
string connectionString = @"your_connection_string";
using (var context = new NorthwindDataContext(connectionString))
{
var query = from c in context.Customers
where c.City == "London"
select c;
foreach (var customer in query)
{
Console.WriteLine(customer.CustomerName);
}
}
এখানে Customers
টেবিলের City ফিল্ডের মান "London" যাদের তাদের নাম প্রিন্ট করা হয়েছে।
using (var context = new NorthwindDataContext(connectionString))
{
var newCustomer = new Customer
{
CustomerID = "NEWID123",
CompanyName = "New Customer Inc.",
City = "New York",
ContactName = "John Doe"
};
context.Customers.InsertOnSubmit(newCustomer);
context.SubmitChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
এখানে একটি নতুন Customer অবজেক্ট তৈরি করা হয়েছে এবং তা Customers টেবিলের মধ্যে ইনসার্ট করা হয়েছে।
using (var context = new NorthwindDataContext(connectionString))
{
var customerToUpdate = (from c in context.Customers
where c.CustomerID == "NEWID123"
select c).FirstOrDefault();
if (customerToUpdate != null)
{
customerToUpdate.ContactName = "Jane Doe";
context.SubmitChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
}
এখানে Customer টেবিল থেকে একটি রেকর্ড নির্বাচন করে তার ContactName ফিল্ড আপডেট করা হয়েছে।
using (var context = new NorthwindDataContext(connectionString))
{
var customerToDelete = (from c in context.Customers
where c.CustomerID == "NEWID123"
select c).FirstOrDefault();
if (customerToDelete != null)
{
context.Customers.DeleteOnSubmit(customerToDelete);
context.SubmitChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
}
এখানে একটি Customer রেকর্ড ডিলিট করা হয়েছে।
LINQ to SQL একটি শক্তিশালী টুল যা ডেভেলপারদের SQL Server ডেটাবেসের সাথে সহজে যোগাযোগ করার সুযোগ দেয়। এটি Object-Relational Mapping (ORM) ব্যবহার করে ডেটাবেস টেবিলগুলিকে .NET অবজেক্ট হিসেবে রূপান্তরিত করে এবং INSERT, UPDATE, DELETE অপারেশনগুলো স্বয়ংক্রিয়ভাবে পরিচালনা করে। যদিও LINQ to SQL এর কিছু সীমাবদ্ধতা রয়েছে, এটি ছোট থেকে মাঝারি আকারের ডেটাবেস অ্যাপ্লিকেশনের জন্য খুবই উপকারী।
common.read_more