LINQ ile SQL Tablolarını MVC Uygulamasında Birleştirme

LINQ kullanarak SQL tablolarını birleştirmek için öncelikle veritabanınızın Entity Framework veya başka bir ORM (Object-Relational Mapping) ile modellemiş olmanız gerekmektedir. Bu örnekte Entity Framework kullanımını ele alacağım

Veritabanı Tablolarını Modelleme: Öncelikle, SQL tablolarınızı bir C# sınıfı olarak modellemeniz gerekmektedir. Bu sınıflar, Entity Framework tarafından veritabanı tablolarınızla ilişkilendirilecektir.

Örneğin, iki tabloyu birleştirelim: "Orders" ve "Customers". Bu iki tabloyu modellemek için aşağıdaki sınıfları kullanabiliriz:

public class Order
{
    public int OrderId { get; set; }
    public string OrderName { get; set; }
    public int CustomerId { get; set; }
    public Customer Customer { get; set; }
}

public class Customer
{
    public int CustomerId { get; set; }
    public string CustomerName { get; set; }
}

Controller (Kontrolör) Tarafı: Şimdi, birleştirme işlemini gerçekleştirecek bir controller oluşturalım. Bu controller, LINQ kullanarak iki tabloyu birleştirir ve sonucu bir View'a iletecektir.

using System.Linq;
using System.Web.Mvc;

public class OrderController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    public ActionResult Index()
    {
        // LINQ ile Orders ve Customers tablolarını birleştirme
        var query = from order in db.Orders
                    join customer in db.Customers
                    on order.CustomerId equals customer.CustomerId
                    select new
                    {
                        order.OrderId,
                        order.OrderName,
                        customer.CustomerName
                    };

        // Sonuçları bir ViewModel'e dönüştürme
        var viewModel = query.ToList().Select(x => new OrderViewModel
        {
            OrderId = x.OrderId,
            OrderName = x.OrderName,
            CustomerName = x.CustomerName
        }).ToList();

        return View(viewModel);
    }
}

HTML Tarafı: Son olarak, birleştirilmiş verileri görüntüleyeceğimiz bir HTML View oluşturmalıyız.

Views/Order/Index.cshtml dosyasını oluşturun ve aşağıdaki gibi düzenleyin:

@model List<OrderViewModel>

<table>
    <thead>
        <tr>
            <th>Order ID</th>
            <th>Order Name</th>
            <th>Customer Name</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.OrderId</td>
                <td>@item.OrderName</td>
                <td>@item.CustomerName</td>
            </tr>
        }
    </tbody>
</table>

Bu View, birleştirilmiş verileri bir tablo içinde listeleyecektir.

Bu adımları takip ederek, LINQ kullanarak SQL tablolarını birleştiren ve sonucu bir MVC Controller ile bir View'da görüntüleyen bir uygulama oluşturabilirsiniz.