Microsoft Technologies LINQ ব্যবহার করে Database Query এবং Binding গাইড ও নোট

278

LINQ (Language Integrated Query) হলো .NET ফ্রেমওয়ার্কের একটি শক্তিশালী ফিচার যা ডেটা স্যোর্স যেমন arrays, collections, XML, databases ইত্যাদি থেকে তথ্য সংগ্রহ এবং পরিচালনা করতে সহায়তা করে। LINQ to SQL এবং Entity Framework ব্যবহার করে আপনি ডাটাবেস থেকে ডেটা নিয়ন্ত্রণ এবং WPF অ্যাপ্লিকেশনে ডেটা বাইন্ডিং সহজে করতে পারেন।

LINQ to SQL ব্যবহার করে Database Query

LINQ to SQL হলো .NET ফ্রেমওয়ার্কের একটি টুল, যা SQL ডাটাবেস থেকে ডেটা কোয়েরি করতে ব্যবহৃত হয়। এটি সিম্পল C# কোড দিয়ে ডাটাবেসের সাথে কাজ করার একটি সহজ উপায় প্রদান করে, এবং SQL কোড লেখার প্রয়োজন নেই।

LINQ to SQL উদাহরণ

ধরা যাক, আপনার একটি ডাটাবেস রয়েছে এবং আপনি তাতে Products নামক একটি টেবিল থেকে ডেটা কুয়েরি করতে চান। প্রথমে, LINQ to SQL ক্লাস তৈরি করুন যা ডাটাবেসের সাথে সংযোগ স্থাপন করবে।

1. DataContext তৈরি করা:

Product নামক একটি টেবিলের জন্য একটি DataContext ক্লাস তৈরি করুন।

public class MyDataContext : DataContext
{
    public Table<Product> Products;
    
    public MyDataContext(string connectionString) : base(connectionString) { }
}

এখানে, DataContext ক্লাস ডাটাবেসের সঙ্গে যোগাযোগ করার জন্য ব্যবহৃত হয়, এবং Products টেবিলের জন্য একটি Table প্রপার্টি রাখা হয়েছে।

2. Database Query (LINQ to SQL):

LINQ to SQL ব্যবহার করে আপনি ডাটাবেস থেকে ডেটা কুয়েরি করতে পারেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে আমরা Products টেবিল থেকে ডেটা নিয়ে আসব।

using (var context = new MyDataContext("YourConnectionString"))
{
    // LINQ query to fetch data from Products table
    var query = from p in context.Products
                where p.Price > 100
                select p;

    // Loop through results and print
    foreach (var product in query)
    {
        Console.WriteLine($"Product ID: {product.ProductID}, Name: {product.ProductName}, Price: {product.Price}");
    }
}

এখানে, আমরা Products টেবিলের সমস্ত পণ্যের মধ্যে যাদের দাম ১০০ টাকার বেশি, তাদের তথ্য কোয়েরি করেছি। LINQ কোডে ডেটাবেসে সরাসরি কুয়েরি তৈরি করা হয়েছে, এবং ফলাফলটি ব্যবহারকারীর কাছে দেখানোর জন্য লুপ করা হয়েছে।


LINQ to SQL এর মাধ্যমে WPF ডেটা বাইন্ডিং

WPF অ্যাপ্লিকেশন-এ LINQ to SQL ব্যবহার করে ডেটাবেস থেকে ডেটা এনে ইউআই উপাদানে (যেমন ListView, DataGrid) বাইন্ড করা যেতে পারে।

1. XAML ডেটা বাইন্ডিং:

ধরা যাক, আপনি ডেটাবেস থেকে পণ্যগুলো একটি ListView এ দেখাতে চান।

<Window x:Class="WPFApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Product List" Height="350" Width="525">
    <Grid>
        <ListView x:Name="productListView">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Product ID" DisplayMemberBinding="{Binding ProductID}" />
                    <GridViewColumn Header="Product Name" DisplayMemberBinding="{Binding ProductName}" />
                    <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}" />
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
</Window>

এখানে, ListView এর মাধ্যমে ডেটাবেসের ProductID, ProductName, এবং Price প্রদর্শন করা হবে।

2. Code-behind (C#):

DataContext থেকে ডেটা লোড করতে LINQ to SQL ব্যবহার করুন এবং সেটি ListView তে বাইন্ড করুন।

using System.Linq;
using System.Windows;

namespace WPFApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            
            // Create DataContext and fetch data
            using (var context = new MyDataContext("YourConnectionString"))
            {
                var products = from p in context.Products
                               where p.Price > 100
                               select p;
                
                // Bind the query result to ListView
                productListView.ItemsSource = products.ToList();
            }
        }
    }
}

এখানে, LINQ কুয়েরি ব্যবহার করে ডেটাবেস থেকে ডেটা খোঁজা হচ্ছে এবং তারপর ListView এর ItemsSource প্রপার্টিতে বাইন্ড করা হচ্ছে। ToList() মেথড ব্যবহার করে IEnumerable টাইপের ফলাফল একটি লিস্টে রূপান্তরিত করা হচ্ছে।


Entity Framework ব্যবহার করে Database Query এবং Binding

Entity Framework (EF) WPF অ্যাপ্লিকেশনে ডেটাবেসের সাথে কাজ করার জন্য একটি আরো আধুনিক এবং শক্তিশালী উপায়। এটি ORM (Object-Relational Mapping) ব্যবহার করে ডেটাবেস এবং ডোমেইন অবজেক্টের মধ্যে সম্পর্ক তৈরি করে।

1. Model Class তৈরি করা (Entity Framework)

ধরা যাক, আমাদের একটি Product ক্লাস রয়েছে, যেটি ডেটাবেসের Products টেবিলের সাথে সম্পর্কিত।

public class Product
{
    public int ProductID { get; set; }
    public string ProductName { get; set; }
    public decimal Price { get; set; }
}

2. DbContext Class তৈরি করা (Entity Framework)

এখন DbContext ক্লাস তৈরি করে ডেটাবেসের সাথে সংযোগ স্থাপন করা হবে।

using System.Data.Entity;

public class MyDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }
}

3. LINQ to Entity Query এবং WPF Data Binding

Entity Framework এর মাধ্যমে ডেটাবেস থেকে ডেটা কোয়েরি করা এবং WPF ListView তে বাইন্ড করা।

using System.Linq;
using System.Windows;

namespace WPFApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            using (var context = new MyDbContext())
            {
                var products = from p in context.Products
                               where p.Price > 100
                               select p;

                productListView.ItemsSource = products.ToList();
            }
        }
    }
}

এখানে, DbContext ব্যবহার করে Products টেবিলের ডেটা কুয়েরি করা হয়েছে এবং তা ListView তে বাইন্ড করা হয়েছে।


সারাংশ (Summary)

  • LINQ to SQL: WPF অ্যাপ্লিকেশনে LINQ to SQL ব্যবহার করে ডেটাবেসের সাথে সহজে কাজ করা যায়। আপনি DataContext তৈরি করে SQL ডাটাবেস থেকে ডেটা কুয়েরি করতে পারেন এবং ফলাফল WPF কন্ট্রোলগুলির সাথে বাইন্ড করতে পারেন।
  • Entity Framework: Entity Framework ব্যবহার করলে আপনি ORM প্যাটার্নে ডেটাবেসের সাথে কাজ করতে পারেন, যেখানে DbContext এবং DbSet এর মাধ্যমে ডেটাবেস কনটেক্সট এবং টেবিল ম্যানেজ করা হয়।
  • Data Binding: LINQ বা Entity Framework কুয়েরি এর ফলাফল WPF কন্ট্রোল (যেমন ListView বা DataGrid) এর ItemsSource প্রপার্টির মাধ্যমে বাইন্ড করা হয়।

LINQ এবং Entity Framework ব্যবহারের মাধ্যমে ডেটাবেস থেকে ডেটা অ্যাক্সেস করা সহজ হয়ে যায়, এবং WPF অ্যাপ্লিকেশনগুলিতে ডেটা বাইন্ডিং আরও কার্যকরী হয়ে ওঠে।

Content added By
Promotion

Are you sure to start over?

Loading...