LINQ to Entities হল LINQ এর একটি প্রকার যা Entity Framework (EF) এর সাথে ব্যবহৃত হয়। Entity Framework (EF) একটি Object-Relational Mapping (ORM) টুল যা .NET ডেভেলপারদেরকে ডেটাবেসে ডেটা কুয়েরি করার জন্য C# বা VB.NET কোড ব্যবহার করতে সাহায্য করে। LINQ to Entities এর মাধ্যমে ডেভেলপাররা ডেটাবেস টেবিলগুলিকে C# ক্লাস হিসেবে রূপান্তরিত করে এবং LINQ এর মাধ্যমে ডেটাবেস কুয়েরি করতে পারেন।
Entity Framework (EF) একটি পূর্ণাঙ্গ ORM টুল যা Code First, Database First, এবং Model First পদ্ধতির মাধ্যমে ডেটাবেসের সাথে কাজ করতে সহায়ক। LINQ to Entities Entity Framework ব্যবহার করে ডেটাবেস কুয়েরি করতে LINQ সিনট্যাক্স ব্যবহার করে এবং ডেটাবেস থেকে তথ্য রিট্রাইভ করতে সক্ষম।
LINQ to Entities ব্যবহার করার জন্য প্রথমে একটি DbContext ক্লাস তৈরি করতে হয়, যা ডেটাবেসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়। পরে, Entity Framework এর মাধ্যমে ডেটাবেস টেবিলের DbSet ক্লাস তৈরি করতে হয়, যা টেবিলের প্রতিনিধিত্ব করে।
Entity Framework এর DbContext ক্লাস ডেটাবেসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়, এবং DbSet ক্লাস ডেটাবেস টেবিলগুলির জন্য ব্যবহৃত হয়।
উদাহরণ:
public class MyDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public MyDbContext() : base("name=MyConnectionString")
{
}
}
এখানে Customer
এবং Order
ক্লাসগুলি ডেটাবেস টেবিলের প্রতিনিধিত্ব করে।
public class Customer
{
public int CustomerID { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
public class Order
{
public int OrderID { get; set; }
public int CustomerID { get; set; }
public DateTime OrderDate { get; set; }
public virtual Customer Customer { get; set; }
}
এখানে Customer
এবং Order
ক্লাসগুলি ডেটাবেস টেবিলের রেকর্ডকে অবজেক্টে রূপান্তরিত করে।
using (var context = new MyDbContext())
{
var query = from c in context.Customers
where c.City == "New York"
select c;
foreach (var customer in query)
{
Console.WriteLine(customer.Name);
}
}
এখানে Customers
টেবিলের থেকে City "New York" যাদের তাদের নাম প্রিন্ট করা হয়েছে।
using (var context = new MyDbContext())
{
var newCustomer = new Customer
{
Name = "John Doe",
City = "Los Angeles"
};
context.Customers.Add(newCustomer);
context.SaveChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
এখানে একটি নতুন Customer অবজেক্ট তৈরি করা হয়েছে এবং তা Customers টেবিলের মধ্যে ইনসার্ট করা হয়েছে।
using (var context = new MyDbContext())
{
var customerToUpdate = (from c in context.Customers
where c.CustomerID == 1
select c).FirstOrDefault();
if (customerToUpdate != null)
{
customerToUpdate.Name = "Jane Doe";
context.SaveChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
}
এখানে Customer টেবিল থেকে একটি রেকর্ড নির্বাচন করা হয়েছে এবং তার Name ফিল্ড আপডেট করা হয়েছে।
using (var context = new MyDbContext())
{
var customerToDelete = (from c in context.Customers
where c.CustomerID == 1
select c).FirstOrDefault();
if (customerToDelete != null)
{
context.Customers.Remove(customerToDelete);
context.SaveChanges(); // পরিবর্তন ডেটাবেসে সেভ
}
}
এখানে একটি Customer রেকর্ড ডিলিট করা হয়েছে।
LINQ to Entities হল Entity Framework ব্যবহার করে ডেটাবেস কুয়েরি করার একটি শক্তিশালী পদ্ধতি। এটি ডেটাবেস টেবিলের জন্য C# ক্লাস বা অবজেক্ট তৈরি করে এবং LINQ সিনট্যাক্স ব্যবহার করে ডেটা কুয়েরি করার সুবিধা প্রদান করে। Entity Framework-এর Object-Relational Mapping (ORM), Deferred Execution, এবং Code First পদ্ধতির সুবিধাগুলি ডেভেলপারদের জন্য ডেটাবেস ম্যানিপুলেশন অনেক সহজ এবং রিডেবল করে তোলে। তবে, কিছু বিশেষ পরিস্থিতিতে কাস্টম SQL বা বড় ডেটাবেসে ব্যবহারের সময় কিছু সীমাবদ্ধতা থাকতে পারে।
common.read_more