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.