C# – Entity Framework Nedir, Nasıl Başlanır?

C# ve Entity Framework kullanarak bir proje başlatmak, yazılım geliştiricileri için oldukça heyecan verici bir maceradır. Bu yazıda, size C# ve Entity Framework kullanarak bir projeye nasıl başlayabileceğinizi eğlenceli bir dille anlatacağım.

Öncelikle, C# programlama dili hakkında biraz bilgi edinmek gerekiyor. C#, Microsoft tarafından geliştirilmiş bir nesne yönelimli programlama dili olup, .NET Framework veya .NET Core tarafından desteklenir. C# ile birlikte, güçlü bir programlama diline sahip olursunuz ve .NET’in sunduğu zengin kütüphane desteğinden faydalanabilirsiniz.

Entity Framework ise C# geliştiricilerinin veri tabanı işlemlerini yönetmelerine yardımcı olan bir ORM (Object Relational Mapping) aracıdır. Bu araç sayesinde, veri tabanı işlemleri için kod yazmak yerine, nesnelere yönelik programlama (OOP) kavramları kullanarak veri tabanı işlemleri gerçekleştirilebilir.

Şimdi, C# ve Entity Framework ile bir projeye nasıl başlanacağına dair bir örnek yapalım. Varsayalım ki, bir müşteri yönetimi uygulaması geliştirmek istiyoruz. İlk olarak, Visual Studio IDE’sini açarak yeni bir proje oluşturuyoruz. Proje şablonunu, ASP.NET Core Web Uygulaması olarak seçiyoruz. Bu şablon, web tabanlı bir uygulama oluşturmamıza yardımcı olacak ve MVC mimarisini kullanacaktır.

Proje oluşturulduktan sonra, Entity Framework kullanarak veri tabanı işlemlerini yönetebilmek için NuGet paket yöneticisini kullanarak Entity Framework Core paketini yüklememiz gerekiyor. Bu paket, veri tabanı işlemleri için gerekli olan sınıfları ve araçları içerir.

Paket yüklendikten sonra, veri tabanımızı oluşturmak için bir model sınıfı oluşturabiliriz. Bu sınıf, veri tabanındaki her bir tabloyu temsil edecek ve verilerin nasıl saklanacağını tanımlayacaktır. Örneğin, müşteri verilerini saklamak için bir Müşteri sınıfı oluşturabiliriz. Bu sınıf, özellikleri aracılığıyla müşteri verilerini saklayacak ve Entity Framework aracılığıyla veri tabanına kaydedilecektir.

Müşteri sınıfını oluşturduktan sonra, veri tabanını oluşturmak için Migration işlemini kullanabiliriz. Bu işlem, model sınıfını veri tabanına yansıtacak ve veri tabanının otomatik olarak oluşturulmasını sağlayacaktır.

Artık veri tabanımızı oluşturduk ve model sınıfımızı tanımladık. Şimdi ise, veri tabanı işlemlerini gerçekleştirebileceğimiz bir servis sınıfı oluşturabiliriz. Bu sınıf, Entity Framework’ü kullanarak veri tabanı işlemlerini yönetecek ve müşteri verilerini saklayacak.

Örneğin, müşterileri kaydedebilmek için bir müşteri ekleme metodu yazabiliriz. Bu metot, Müşteri sınıfından bir nesne alacak ve Entity Framework aracılığıyla veri tabanına kaydedecek.

Ayrıca, müşterileri listelemek veya güncellemek için de benzer metotlar yazabiliriz. Bu metotlar, veri tabanı işlemlerini gerçekleştirecek ve müşteri verilerinin yönetimini sağlayacak.

Son olarak, müşterileri görüntülemek için bir kullanıcı arayüzü oluşturabiliriz. Bu arayüz, müşteri verilerini gösteren bir web sayfası veya mobil uygulama olabilir.

Tüm bu adımları tamamladıktan sonra, C# ve Entity Framework kullanarak bir müşteri yönetimi uygulaması geliştirmiş oluruz. Bu uygulama, müşteri verilerini saklamak, listelemek, güncellemek ve silmek için kullanılabilir.

C# ve Entity Framework kullanarak bir projeye başlamak oldukça kolay ve eğlencelidir. Bu araçlar, yazılım geliştiricilerine veri tabanı işlemlerini yönetme konusunda büyük kolaylık sağlar. Ayrıca, C# ve .NET’in sunduğu zengin kütüphane desteği sayesinde, geliştiricilerin daha güçlü ve etkili uygulamalar geliştirmelerine olanak tanır.

Örnek kodları aşağıda ekliyorum.

Öncelikle, Entity Framework’ü projemize ekleyelim. Bunun için, NuGet paket yöneticisini kullanabiliriz. Aşağıdaki komutu NuGet Paket Yöneticisi Konsolu’nda çalıştırın:

Install-Package Microsoft.EntityFrameworkCore

Ardından, veritabanı işlemlerimizi gerçekleştirebileceğimiz bir servis sınıfı oluşturalım. Bu sınıf, veri tabanı bağlantısını kuracak ve müşteri verilerini saklayacak.

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

public class CustomerService
{
    private readonly DbContextOptions _options;

    public CustomerService(DbContextOptions options)
    {
        _options = options;
    }

    public void AddCustomer(Customer customer)
    {
        using (var context = new MyDbContext(_options))
        {
            context.Customers.Add(customer);
            context.SaveChanges();
        }
    }

    public List<Customer> GetCustomers()
    {
        using (var context = new MyDbContext(_options))
        {
            return context.Customers.ToList();
        }
    }

    public void UpdateCustomer(Customer customer)
    {
        using (var context = new MyDbContext(_options))
        {
            context.Entry(customer).State = EntityState.Modified;
            context.SaveChanges();
        }
    }

    public void DeleteCustomer(int id)
    {
        using (var context = new MyDbContext(_options))
        {
            var customer = context.Customers.Find(id);
            context.Customers.Remove(customer);
            context.SaveChanges();
        }
    }
}

Yukarıdaki kodda, DbContextOptions nesnesi veritabanı bağlantısını ve yapılandırmasını tutar. Servis sınıfı içinde AddCustomer, GetCustomers, UpdateCustomer ve DeleteCustomer metotları, Entity Framework aracılığıyla veritabanı işlemlerini gerçekleştirir.

Bunun yanı sıra, müşteri verilerini saklayacak olan Customer sınıfını tanımlamalıyız.

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

Son olarak, veritabanı bağlantısını kurmak için bir DbContext sınıfı oluşturmalıyız.

using Microsoft.EntityFrameworkCore;

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions options) : base(options)
    {
    }

    public DbSet<Customer> Customers { get; set; }
}

Yukarıdaki kodda, MyDbContext sınıfı DbContext sınıfından kalıtım alır ve veritabanı işlemlerini gerçekleştirecek olan Customers özelliğini içerir.

Tüm bu adımları tamamladıktan sonra, CustomerService sınıfını kullanarak müşteri verilerini veritabanına ekleyebilir, güncelleyebilir, silip, ve listeyebiliriz.

var options = new DbContextOptionsBuilder<MyDbContext>()
    .UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;")
    .Options;

var customerService = new CustomerService(options);

// Müşteri ekleme
var newCustomer = new Customer
{
    FirstName = "Ali",
    LastName = "Yılmaz",
    Email = "[email protected]"
};
customerService.AddCustomer(newCustomer);

// Müşteri güncelleme
var customerToUpdate = customerService.GetCustomers().FirstOrDefault();
if (customerToUpdate != null)
{
    customerToUpdate.FirstName = "Ahmet";
    customerService.UpdateCustomer(customerToUpdate);
}

// Müşteri silme
var customerToDelete = customerService.GetCustomers().FirstOrDefault();
if (customerToDelete != null)
{
    customerService.DeleteCustomer(customerToDelete.Id);
}

// Müşteri listeleme
var customers = customerService.GetCustomers();
foreach (var customer in customers)
{
    Console.WriteLine($"{customer.Id} - {customer.FirstName} {customer.LastName} ({customer.Email})");
}

Yukarıdaki kodda, DbContextOptionsBuilder sınıfı veritabanı ayarlarını yapılandırmamızı sağlar. "Server=(localdb)\\mssqllocaldb; Database=MyDatabase; Trusted_Connection=True;" kısmında, veritabanının adını ve SQL Server bağlantı dizesini belirtiyoruz.

Ardından, CustomerService sınıfını kullanarak müşteri verilerini veritabanına ekleyebilir, güncelleyebilir, silip, ve listeyebiliriz.

Bu örnekler size Entity Framework kullanarak C# ile bir proje başlangıcı yapmanıza yardımcı olabilir. Tabii ki gerçek projelerde daha kapsamlı veritabanı şemaları olacaktır ve bu örnekler yalnızca temel bir fikir vermek için yazılmıştır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir