Veritabanı İşlemleri ve Entity Framework Kullanımı ASP.NET MVC'de

Veritabanı İşlemleri ve Entity Framework Kullanımı ASP.NET MVC'de

ASPNET MVC'de Veritabanı İşlemleri ve Entity Framework kullanımı hakkında bilgi edinin Bu yazıda, Entity Framework'ün avantajından faydalanarak veritabanı işlemlerini kolayca gerçekleştirebilirsiniz Tek yapmanız gereken örnek kodları takip etmek!

Veritabanı İşlemleri ve Entity Framework Kullanımı ASP.NET MVC'de

Bu makale ASP.NET MVC uygulamalarında veritabanı işlemleri ve Entity Framework kullanımı hakkında bilgi vermeyi amaçlamaktadır. Veritabanı işlemleri yaparken, bağlantı ayarları ve Entity Framework kullanımı oldukça önemlidir. Bu makalede, veritabanı sistemlerinin oluşturulması, bağlantı ayarlarının yapılması, Entity Framework kullanımının detayları ve CRUD işlemleri ile stored procedure kullanımı hakkında bilgi verilecektir.


Veritabanı Oluşturma ve Bağlantı Ayarları

ASP.NET MVC uygulamalarında veritabanı işlemlerinin ilk aşaması, veritabanının oluşturulması ve bağlantı ayarlarının yapılmasıdır. Veritabanı oluşturma işlemi için öncelikle SQL Server Management Studio programı üzerinden yeni bir veritabanı oluşturulur. Veritabanı adı ve diğer ayarlar belirlendikten sonra oluşturulan veritabanı, ASP.NET MVC projesinde Web.config dosyası içerisinde tanıtılır.

Bağlantı ayarları ise Web.config dosyası içerisinde tanımlanan connectionStrings bölümünde yapılır. Bu bölümde, veritabanına bağlantı yapılacak olan sunucu adı, veritabanı adı, kullanıcı adı ve şifre bilgileri belirtilir. Ayrıca, veritabanına bağlantı sağlanacak olan yöntem de bu bölümde belirtilir.

Bunun yanı sıra, Entity Framework kullanarak veritabanı işlemleri yapılacaksa, Web.config dosyasında ilgili ayarlar yapılmalıdır. Bu ayarlar arasında, veritabanı sağlayıcısı ve veritabanına bağlantı sağlanacak olan sunucu yolu gibi bilgiler yer alır.


Entity Framework Kullanımı

Entity Framework, .NET Framework içindeki bir adlı Microsoft teknolojisidir. Bu teknoloji ile veritabanı işlemleri basitleştirilir, hata sayısı azaltılır ve performans artırılır. Entity Framework kullanarak veritabanı işlemlerinin yapıldığı bu kısımda, Code First Yaklaşımı ve CRUD işlemleri anlatılacaktır.

Entity Framework'te Code First Yaklaşımı, veritabanının kod tarafından oluşturulması anlamına gelir. Bu yaklaşımla önce model sınıfları oluşturulur, daha sonra Entity Framework bu modellere göre veritabanını oluşturur. Code First Yaklaşımı kullanılarak oluşturulan veritabanı, veritabanı yöneticisi tarafından el ile oluşturulmuş bir veritabanından ayırt edilemez.

Entity Framework'te herhangi bir model sınıfı, DbSet özelliği olan DbContext türetilen sınıflarda kullanılabilir. Model sınıflarının her biri, oluşturmak istediğimiz veritabanı tablosu için bir sütun ve sütun özelliklerini içermelidir. Yani her bir model sınıfı, oluşturmak istediğimiz veritabanı tablosunu temsil eder.

Code First Yaklaşımı kullanılarak veritabanlarında ilişkilendirmeler yapmak oldukça kolaydır. Model sınıfları arasındaki ilişkiler, bağımlılık özellikleri ile belirlenir. Bir model sınıfının diğer model sınıfına olan bağımlılığı, gerekli sütunların eklenmesini sağlar. Entity Framework, bağımlılık ilişkilerinin düzgün bir şekilde tanımlanmasına dayanarak, gerekli veritabanı tablolarını ve oluşturulması gereken sütunları otomatik olarak oluşturur.

Entity Framework kullanarak CRUD işlemleri kolaylıkla yapılabilir. CRUD, Create-Read-Update-Delete, veritabanlarında en sık kullanılan dört işlemi ifade eder.

Entity Framework'te, bir nesne için yeni bir örnek oluşturup DBSet'e eklemek, yeni bir kaydı veritabanına kaydetmek anlamına gelir. Bu işlem, veritabanındaki bir tabloya yeni bir satır eklemek ile aynıdır. Yeni kayıt, SaveChanges() metodu ile veritabanına kaydedilir.

Entity Framework'te verileri okumak için bir sorgu oluşturulur ve bu sorgu DBSet'ten çağrılır. Bu sorgu, Select işlemine denk gelir ve geriye bir liste döndürür. After publishing the content, please copy the URL of the page and paste it into the translation console.


Code First Yaklaşımı

Code First Yaklaşımı, Entity Framework kullanılarak veritabanı işlemlerinin en çok kullanılan yöntemlerinden biridir. Bu yaklaşım ile veritabanı yapısını kod tarafında oluşturabilir ve daha sonra bu yapı kullanılarak veritabanı işlemleri gerçekleştirilebilir. Code First Yaklaşımı sayesinde, veritabanı yapısını oluşturma süreci kolaylaşmakta ve geliştiricilerin daha hızlı bir şekilde projelerini tamamlamasına olanak tanımaktadır.

Code First Yaklaşımı ile veritabanı yapısı, C# ya da başka bir .NET programlama dili kullanılarak oluşturulur. Bu yapının özellikleri kod içerisinde belirtilir ve daha sonra bu yapının kullanılarak veritabanı işlemleri gerçekleştirilir. Bu yaklaşımı kullanırken, veritabanı yapısını oluşturma süreci basitleşir ve geliştiricilerin daha az kod yazmalarına olanak sağlar. Ancak, veritabanı yapısının kod tarafında oluşturulması dezavantaj olarak görülebilir çünkü veritabanı üzerinde yapılan değişiklikler, kodda güncelleme gerektirmektedir.

Code First Yaklaşımı kullanılırken, veritabanı yapısı model sınıfları kullanılarak oluşturulur. Bu model sınıflarında, her bir veritabanı tablosu bir sınıf olarak tanımlanır ve bu sınıflar arasındaki ilişkiler de yine model sınıf özellikleri yardımıyla belirtilir. Bu sayede, veritabanı yapısı daha anlaşılır ve yönetilebilir hale gelir. Ayrıca, CRUD işlemlerinin gerçekleştirilmesi sırasında bu sınıflar kullanılarak veritabanı işlemleri yapılabilir.


Code First Yaklaşımı ile Model Sınıflarının Oluşturulması

Code First Yaklaşımı, veritabanı işlemlerinde kullanılan bir yaklaşımdır. Bu yaklaşımda, öncelikle model sınıfları oluşturulur ve bu sınıflar veri tabanındaki tabloların karşılığını oluşturur. Model sınıfları oluşturulurken, özellikleri belirlenir ve veri tabanındaki sütun isimleri de property'lerin isimlerine göre belirlenir.

Bu yaklaşımı kullanarak model sınıflarını oluşturmak oldukça kolaydır. Öncelikle, bir sınıf oluşturulur ve bu sınıf Entity sınıfından türetilir. Daha sonra, bu sınıfın property'leri oluşturulur ve property'lerin tipleri veri tabanındaki sütunların tipleriyle uyumlu hale getirilir. Property'lerin isimleri, veri tabanındaki sütunların isimleriyle aynı olmalıdır.

Model sınıflarının özelliklerinin belirlenmesi oldukça önemlidir. Bu özellikler, veri tabanındaki sütunların niteliklerini belirler. Örneğin, bir sütunun null değer alıp alamayacağı ya da bir sütuna varsayılan değer atanıp atanamayacağı, model sınıfındaki property'lerin özellikleri ile belirlenir.

Ayrıca, model sınıfları arasında ilişki olması durumunda, bu ilişkiler de model sınıflarının özellikleriyle belirlenir. Örneğin, bir sınıfta diğer bir sınıfın özelliğinin yer alması durumunda, bu durumda bu iki sınıf arasında bir ilişki olduğu anlaşılır. Bu ilişkinin türüne göre model sınıflarının özellikleri belirlenir.

Code First Yaklaşımı, model sınıflarının oluşturulması için oldukça kullanışlı bir yöntemdir. Bu yaklaşım sayesinde, veri tabanının yapısı ve model sınıfları arasındaki ilişkiler kolaylıkla belirlenebilir. Bu nedenle, bu yöntemin kullanımı oldukça yaygındır.


Code First Yaklaşımı ile Veritabanı İlişkilendirmeleri

Code First Yaklaşımı ile veritabanı işlemleri yapıldığında, veritabanı ilişkilendirmeleri de oldukça önemlidir. Bu işlem, veritabanındaki tabloların birbirleriyle bağlantılarının sağlanmasıdır.

Veritabanı ilişkilendirmeleri yapılırken, iki tablo arasında ilişki belirtilir. Bu ilişki genellikle Foreign Key kullanılarak tanımlanır. Yani, herhangi bir tablo içerisinde yer alan bir sütun, diğer tablo içerisindeki bir sütunun anahtar değerini taşır. Bu sayede, tablolar arasında ilişki kurulmuş olur.

Code First Yaklaşımı ile veri modeli sınıfları yazılırken, bu sınıflar arasındaki ilişkiler de belirtilir. Bu sayede, Entity Framework otomatik olarak veritabanı ilişkilendirmelerini yapar. Bazı durumlarda, ilişkilendirmeler özelleştirilmek istenebilir. Bu durumda, fluent API kullanılarak ilişkilendirmeler özelleştirilebilir.

Veritabanı ilişkilendirmeleri yapılırken, dikkat edilmesi gereken bir diğer nokta ise, tablolar arasında One-to-one, One-to-many veya Many-to-many ilişkileri mevcut olabilir. Bu ilişkiler doğru belirlenerek, veritabanındaki verilerin doğru şekilde yönetilmesi sağlanır.


CRUD İşlemleri

CRUD işlemleri, veritabanı işlemlerinde en temel işlemlerdir. Entity Framework kullanarak CRUD işlemlerini yapmak oldukça kolaydır. CRUD işlemleri; veri ekleme, okuma, güncelleme ve silme işlemleridir. Bu işlemleri yapmak için Entity Framework'ün sağladığı DbContext sınıfı kullanılır.

DbContext sınıfı ile veritabanı işlemleri yaparken, öncelikle ilgili tablo için bir DbSet nesnesi oluşturulması gerekir. Daha sonra bu nesne üzerinden veri ekleme, okuma, güncelleme ve silme işlemleri yapılabilir. Ayrıca, Entity Framework'ün sağladığı LINQ to Entities özelliği sayesinde veri filtreleme, sıralama ve gruplama işlemleri de yapılabilir.

Veri eklemek için öncelikle ilgili tablonun DbSet nesnesine yeni bir nesne eklenir. Daha sonra DbContext sınıfının SaveChanges() metodu çağrılarak bu değişiklikler veritabanına kaydedilir. Veri okumak için ise DbSet nesnesine LINQ to Entities sorgusu yazılır ve bu sorgu sonucu dönen veriler kullanılır. Veri güncellemek için ise yine ilgili tablonun DbSet nesnesindeki kayıt güncellenir ve SaveChanges() metodu çağrılarak değişiklikler veritabanına kaydedilir. Veri silmek için ise DbSet nesnesindeki kayıt Remove() metodu ile silinir ve SaveChanges() metodu çağrılarak veritabanı güncellenir.

Bu işlemler yapıldığında, Entity Framework otomatik olarak SQL sorgularını oluşturur ve bu sorguları veritabanına gönderir. Bu sayede, veritabanı işlemleri oldukça kolay ve hızlı bir şekilde yapılabilmektedir.


Veritabanına Veri Ekleme İşlemleri

ASP.NET MVC uygulamalarında veritabanı işlemleri, Entity Framework kullanarak oldukça kolay bir hale getirilebilir. Bu bağlamda, bu bölümde veritabanına veri ekleme işlemleri hakkında bilgi vereceğiz.

Veritabanına veri eklemenin birkaç yolu bulunmaktadır. Bunlar arasında, Entity Framework tarafından sağlanan Add() metodunu kullanmak yer almaktadır. Bu yöntem, veriyi veritabanına eklerken oldukça esnek bir yaklaşım sağlar.

Entity Framework'te veri eklemek için, öncelikle örneği oluşturup, varlık sınıfının örneğini almanız gerekmektedir. Ardından, Add() metodunu kullanarak, veriyi veritabanına ekleyebilirsiniz. Aşağıdaki örnek bu işlemi göstermektedir:

using (var context = new MyDbContext()){    var customer = new Customer    {        Name = "John",        Email = "john@example.com"    };     context.Customers.Add(customer);    context.SaveChanges();}

Yukarıdaki örnekte, önce MyDbContext adında bir veritabanı bağlantısı örneği oluşturulur. Daha sonra, bir müşteri örneği yaratılır ve bu örnek Add() metodu kullanılarak Customers tablosuna eklenir. Son olarak, değişiklikleri veritabanına kaydetmek için SaveChanges() metodu çağırılır.

Bu yöntemi kullanarak, veritabanına tek bir veri ya da birden fazla veri eklenebilir. Yalnızca birkaç özelliği doldurulmuş bir örneği eklemek mümkün olduğu gibi, tüm özellikleri doldurulmuş bir örneği de veritabanına eklemek mümkündür.

Veritabanına ekleme işlemlerinde problem yaşamamak için, tablodaki benzersiz anahtar (primary key) alanlarını doldurmayı da ihmal etmeyin.


Veritabanından Veri Okuma İşlemleri

Veritabanından veri okuma işlemleri, bir ASP.NET MVC projesinin önemli bir parçasıdır ve Entity Framework ile kolaylıkla yapılabilmektedir. Entity Framework kullanılarak veritabanından veri okuyabilmek için, öncelikle context sınıfındaki DbSet nesnesi kullanılarak veri seçilmelidir. Bu veri, Linq sorguları kullanılarak belirli kriterlere göre filtrelenerek getirilebilir.

Örneğin, bir kullanıcının profil sayfasında isim, soyisim, doğum tarihi, ve e-posta adresi gibi bilgileri veritabanından okumak istiyorsak, önce User tablosuna ait DbSet nesnesi seçilmelidir. Sonrasında Linq sorguları kullanarak filtreleme işlemini gerçekleştirebiliriz. Örnek olarak aşağıdaki kod bloğu, User tablosundan id'si 5 olan kullanıcının tüm bilgilerini getirmektedir.

var user = dbContext.Users.FirstOrDefault(u => u.Id == 5);

Bu kodu kullanarak, veritabanından veri okuma işlemleri kolaylıkla gerçekleştirilebilir. Ayrıca, Entity Framework kullanılarak oluşturulan sorgular, veritabanında birçok kayıt olduğunda bile oldukça hızlı bir şekilde çalışabilmektedir. Bu sayede, ASP.NET MVC uygulamaları hızlı bir şekilde çalışarak daha verimli bir hale gelebilir.


Veritabanındaki Verilerin Güncellenmesi

ASP.NET MVC uygulamalarında veritabanı işlemlerinde en sık karşılaşılan durumlardan biri, verilerin güncellenmesidir. Veritabanındaki verilerin güncellenmesi için Entity Framework kullanımı oldukça pratiktir.

Veri güncelleme işlemi için öncelikle ilgili veriyi seçip, değiştirmek istediğimiz alanları dolduruyoruz. Daha sonra veritabanına güncelleme işlemini uyguluyoruz. Entity Framework kullanılarak yapılan veri güncelleme işlemleri genellikle aşağıdaki adımları izler:

  • İlgili sınıfta güncellenecek veri seçilir.
  • Değiştirilecek alanlar set edilir.
  • DbContext SaveChanges() metodu çağrılarak veritabanı güncellenir.

Bu adımlarla birlikte, veritabanındaki verilerin güncellenmesi oldukça kolay ve hızlı bir şekilde gerçekleştirilebilir.

Veri güncelleme işlemi örnek olarak aşağıdaki gibi yapılabilir:

ID Ad Soyad Email Şifre
1 Ahmet Yılmaz ahmet.yilmaz@mail.com 123456
2 Ali Demir ali.demir@mail.com 456789

Örneğin, yukarıdaki tablodaki Ahmet Yılmaz adlı kullanıcının şifresini 654321 olarak güncellemek istediğimizi varsayalım. Bunun için öncelikle Ahmet Yılmaz'ın ilgili kaydını seçmeliyiz;

User user = context.Users.Where(u => u.ID == 1).FirstOrDefault();

Ardından şifresini set etmeliyiz:

user.Password = "654321";

Son olarak DbContext SaveChanges() metodu ile güncelleme işlemini gerçekleştirebiliriz:

context.SaveChanges();

Bu şekilde, veritabanındaki verileri kolayca güncelleyebiliriz. Entity Framework, veritabanı işlemlerinde yaşanan zorlukları ortadan kaldıran güçlü bir araçtır.


Veritabanındaki Verilerin Silinmesi

Veritabanındaki verilerin silinmesi, basit bir CRUD işlemidir. Entity Framework kullanarak veritabanından veri silme işlemi için Remove() metodu kullanılır. Remove() metodu, veri kaynağından bir varlık kaldırmak için kullanılır. Remove() metodu için silinecek varlık parametre olarak verilir. Bu işlem Entity Framework'ün proxy nesneleri üzerinden gerçekleştirilir.

Veritabanından veri silmek için veritabanındaki varlığı önce bulmanız gerekir. Bu varlık daha sonra Remove() metodu kullanarak veritabanındaki verilerden silinir. Veri silme işlemi sonrasında değişikliklerin veritabanına kaydedilmesi gerekmektedir. Bunun için SaveChanges() metodu kullanılır.

Silme işlemi esnasında veritabanındaki verilerin ilişkisel yapısına dikkat edilmesi gerekmektedir. Verisinden bağımlı olan ya da bir diğer veri tarafından referans edilen veriler silinemez. Bu tür verilerin silinmesi, veritabanındaki bütünlük kuralı ihlali olarak kabul edilir. Silinmesi planlanan verilerin, bağımlı olduğu verilerin silinmesinden önce silinmesi gerekmektedir.

Aşağıdaki örnek kod bloğunda Entity Framework kullanarak silme işlemi ile ilgili bir örnek verilmiştir.

```C#using (var context = new VeritabaniBaglantisi()){ // Silme işlemi öncesi veriye erişim var silinecekVeri = context.Varliklar.Find(id); if (silinecekVeri != null) { context.Varliklar.Remove(silinecekVeri); context.SaveChanges(); }}```

Yukarıdaki kod bloğunda TryGetById() metodu, veritabanından bir veriye erişmek için kullanılır. Eğer veri varsa Remove() metoduyla silinir ve SaveChanges() ile değişiklikler veritabanına kaydedilir.


Stored Procedure Kullanımı

Stored Procedure'ler, veritabanında işlemlerin daha hızlı ve performanslı bir şekilde gerçekleştirilmesini sağlamak için kullanılan özel komut dosyalarıdır. Bu dosyalar, belirli bir işlemi gerçekleştiren SQL kodlarından oluşur ve veritabanında birer işlem olarak saklanır. Stored Procedure'ler, özellikle büyük veritabanlarında performans artışı sağlamak için yaygın olarak kullanılır.

Stored Procedure kullanarak veritabanı işlemleri oldukça kolaydır. Öncelikle, bir Stored Procedure oluşturmak için veritabanında bir komut dosyası oluşturmanız gerekir. Bu dosyada, yapmak istediğiniz işlem için SQL kodlarını yazabilirsiniz. Örneğin, bir müşterinin bilgilerini güncellemek için bir Stored Procedure yazabilirsiniz.

Stored Procedure'leri kullanarak, veritabanında güncelleme, ekleme veya silme işlemleri yapabilirsiniz. Ayrıca, veritabanından bilgi okumak için de Stored Procedure kullanabilirsiniz. Bu, veritabanında toplu işlemler gerçekleştirmek veya veritabanı yöneticisi olmayan kullanıcılara belirli veritabanı işlemlerine izin vermek için oldukça yararlıdır.

Stored Procedure'ler, özellikle çok işlem yapan web siteleri ve uygulamalar için önemlidir. Bu, veritabanının yükünü azaltarak, uygulamanın hızını artırır ve daha düzenli bir çalışma sağlar. Ayrıca, Stored Procedure'lerin kullanımı, güvenlik açısından da önemlidir, çünkü kullanıcıların veritabanı nesnelerine erişimini sınırlamak için kullanılabilir.


Stored Procedure Oluşturma

Stored Procedure, veritabanında belirli işlemleri yapmak için kullanılan hazır bir kod grubudur. Entity Framework ile birlikte Stored Procedure'lar da kullanılabilir. Stored Procedure'lar, performansı artırmak ve veritabanındaki işlemlerin daha hızlı yapılması için önemlidir.

Stored Procedure oluşturmak oldukça basittir. Bunun için öncelikle veritabanına bağlanılması gerekmektedir. Daha sonra SQL Server Management Studio kullanılarak bir Stored Procedure oluşturulabilir. Bu işlem için öncelikle açmak istediğimiz veritabanı seçilir. Daha sonra "Programmability" sekmesine tıklanır ve "Stored Procedures" seçeneği seçilir.

Bu adımlardan sonra "New Stored Procedures" seçeneğine tıklanarak yeni bir Stored Procedure oluşturulabilir. Oluşturulan Stored Procedure'a isim verilir ve içerisine işlemler yazılır. Bunların yanı sıra, Stored Procedure parametreleri de tanımlanabilir. Parametreler, Stored Procedure çalıştığında kullanılan sabit değerlerdir.

Stored Procedure'lar, Entity Framework ile çalışırken çağrıldığı zaman SQL kodu tarafından çalıştırılırlar. Bu işlem, veritabanında yapılan işlemlerin çok daha hızlı ve performanslı olmasını sağlar. Stored Procedure oluşturma konusunda dikkat edilmesi gereken nokta, güvenlik açısıdır. Stored Procedure'lar, execute edildiği an itibariyle çalışır ve gerekli kontroller yapılmazsa zararlı saldırılara açık hale gelirler.


Stored Procedure Kullanımı

ASP.NET MVC uygulamaları için veritabanı işlemlerinin yapıldığı Stored Procedure kullanımı oldukça işlevseldir. Çünkü Stored Procedure'ler, veritabanının performansını artırır, tekrarlanan sorguları tek bir noktadan yönetilebilir şekilde bir araya getirir ve güvenliği artırır.

Stored Procedure oluşturulduktan sonra, Controller sınıfında kullanım için tanımlanabilir. Bunun için, SqlConnection nesnesi oluşturularak veritabanına bağlantı sağlanır ve SqlCommand nesnesi tanımlanır. SqlCommand nesnesi, Stored Procedure'ün adı, parametrelerinin adı ve değerleri belirtilerek oluşturulur.

Örneğin, "spGetProducts" isimli bir Stored Procedure oluşturulduktan sonra, aşağıdaki örnekte olduğu gibi kullanılabilir.

```public IEnumerable GetProducts(){ using (SqlConnection conn = new SqlConnection("connection string")) { conn.Open();

SqlCommand cmd = new SqlCommand("spGetProducts", conn); cmd.CommandType = CommandType.StoredProcedure;

SqlDataReader reader = cmd.ExecuteReader();

List products = new List(); while (reader.Read()) { products.Add(new Product { ProductId = (int)reader["ProductId"], Name = reader["Name"].ToString(), Description = reader["Description"].ToString(), Price = (decimal)reader["Price"] }); }

return products; }}```

Yukarıdaki örnekte, bağlantı için SqlConnection, komut için SqlCommand ve veri okumak için SqlDataReader nesneleri kullanılmıştır. Stored Procedure adı, CommandType özelliğine atanarak SqlCommand nesnesi oluşturulur. Veri okuma işlemi while döngüsü içinde yapılır ve her satırdaki veriler Product nesnesi içine eklenir.

Stored Procedure kullanımı, veritabanı işlemlerinin daha verimli, hızlı ve güvenli bir şekilde yapılmasını sağlar. Bu nedenle, ASP.NET MVC uygulamalarında Stored Procedure kullanımı tercih edilebilir.