Tekil Mesaj gösterimi
Alt 15 Şubat 2023, 00:11   #1
Çevrimdışı
Kafkef
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Entity Framework Nedir?




Entity Framework: .NET Tabanlı Nesne Yönelimli Veritabanı Erişim Teknolojisi

Entity Framework, .NET tabanlı bir nesne yönelimli veritabanı erişim teknolojisidir. Entity Framework, LINQ (Language Integrated Query) kullanarak veritabanı sorgularını ve CRUD (Create, Read, Update, Delete) işlemlerini nesne tabanlı bir şekilde gerçekleştirmeye olanak sağlar.

Entity Framework, veritabanı bağlantılarını yönetmek, veri modellemesini yapmak ve veritabanı nesneleri arasındaki ilişkileri tanımlamak için kullanılır. Entity Framework aynı zamanda veritabanına ilişkin birçok konuda geliştirme sürecini kolaylaştıran birçok araç ve özellik de sağlar. Bu sayede, .NET geliştiricileri veritabanı işlemlerini daha hızlı ve daha kolay bir şekilde gerçekleştirebilirler.

Entity Framework, Code First, Database First ve Model First yaklaşımları gibi farklı yaklaşımlarla kullanılabilir. Code First yaklaşımı, nesne modelini oluşturduktan sonra veritabanının otomatik olarak oluşturulmasına izin verirken, Database First yaklaşımı veritabanı şemasından nesne modeli oluşturulmasına izin verir. Model First yaklaşımı ise, veri modeli önce tasarlanır ve daha sonra veritabanı şemasına dönüştürülür.

Entity Framework'ün en önemli özelliklerinden biri, ORM (Object-Relational Mapping) özelliğidir. ORM, veritabanı nesneleriyle nesne modeli arasında bir haritalama sağlar. Bu, veritabanı işlemlerinin daha nesne yönelimli bir şekilde gerçekleştirilmesine olanak sağlar.

Entity Framework'ün diğer bir önemli özelliği de, veritabanı bağımsızlığıdır. Entity Framework, farklı veritabanı sistemleriyle (SQL Server, Oracle, MySQL vb.) uyumlu olarak çalışabilir. Bu sayede, farklı veritabanı sistemleri arasında kolaylıkla geçiş yapılabilir.

Sonuç olarak, Entity Framework, .NET geliştiricileri için veritabanı işlemlerini kolaylaştıran bir teknolojidir. Entity Framework, LINQ kullanarak veritabanı sorgularını ve CRUD işlemlerini nesne yönelimli bir şekilde gerçekleştirmeye olanak sağlar. Ayrıca, farklı veritabanı sistemleriyle uyumlu çalışabilmesi, geliştirme sürecini daha esnek hale getirir.

Code First ;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
using System.ComponentModel.DataAnnotations; public class Person { public int PersonId { get; set; } [Required] [StringLength(50)] public string FirstName { get; set; } [Required] [StringLength(50)] public string LastName { get; set; } public DateTime DateOfBirth { get; set; } } public class MyDbContext : DbContext { public DbSet<Person> Persons { get; set; } }


Bu örnek, bir "Person" sınıfı oluşturur ve sınıfın özellikleri veritabanında sütunlar olarak kullanılır. Veritabanı tablosu otomatik olarak oluşturulur ve adı "Persons" olarak atanır. (Tabi siz Table Attribute ile farklı isim vermezseniz)

MyDbContext sınıfı, DbContext sınıfından türetilir ve Person sınıfını DbSet olarak tanımlar. Bu, Entity Framework'ün "Person" nesnelerini veritabanı işlemlerinde kullanabileceği anlamına gelir.

Bu örnekte Code First, veritabanı şemasını nesne modelleriyle başlatır. Bu nedenle, veritabanını doğru şekilde oluşturmak için "Person" sınıfındaki her özellik için veritabanı sütunları oluşturulur. Bu örnek, Entity Framework'ün Code First yaklaşımının basit bir örneğidir ve uygulamanızın ihtiyaçlarına göre daha karmaşık modeller oluşturabilirsiniz.

Ayrıca veritabanınızı otomatik güncellemek için kullanabileceğiniz bir yapıda mevcuttur.

Entity Framework'teki Automatic Migration

Entity Framework'teki Automatic Migration özelliği, modelde yapılan değişikliklerin veritabanına otomatik olarak uygulanmasına izin verir. Bu özellik sayesinde, veritabanını elle güncelleme ihtiyacını ortadan kaldırarak, modelde yapılan değişikliklerin hızlı ve kolay bir şekilde uygulanmasını sağlar.

Örneğin, senin için bir "Blog" sınıfı düşünelim:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Blog { public int BlogId { get; set; } public string Name { get; set; } }

Bu sınıfı DbContext sınıfına eklediğimizi varsayalım:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class MyDbContext : DbContext { public DbSet<Blog> Blogs { get; set; } }

Veritabanında "Blogs" adında bir tablo oluşturmak için "Add-Migration" komutunu kullanabiliriz. Şimdi, örneğin "Blog" sınıfına "Url" özelliğini eklediğimizi varsayalım:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Blog { public int BlogId { get; set; } public string Name { get; set; } public string Url { get; set; } }

"Add-Migration" komutunu kullanarak otomatik bir migration oluşturabiliriz:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Add-Migration AddUrlToBlog -ProjectName MyProject

Bu migration, "Blog" sınıfındaki değişikliği tespit edecek ve veritabanına bir sütun ekleyecektir.

Son olarak, "Update-Database" komutunu kullanarak veritabanını otomatik olarak güncelleyebiliriz:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Update-Database -ProjectName MyProject

Bu komut, migration'ı uygulayacak ve "Blogs" tablosuna "Url" sütununu ekleyecektir.

Bu örnek, Automatic Migration özelliğinin nasıl kullanılabileceğine ilişkin basit bir örnektir. Bu özellik, veritabanındaki değişiklikleri takip etmek ve manuel olarak veritabanını güncellemek için çok zaman ve çaba gerektiren durumlarda oldukça kullanışlıdır.


Tabi gecenin bu saatinde can sıkıntısından yazılmış birşeyde bir çok eksik olabilir. Tekrar tekrar okumaya pek takatim yok fakat yüzeyselde olsa konu hakkında fikriniz olmasını sağlayacağını düşünebiliriz.

Konu hakkında detaylı bilgi isteyenlere yardım etmekten memnuniyet duyarız
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet