Entity Framework Core (EF Core), geliştiricilerin .NET nesnelerini kullanarak veritabanlarıyla etkileşimde bulunmasına olanak tanıyan bir nesne ilişkisel eşleme (ORM) çerçevesidir. EF Core'un temel özelliklerinden biri, veritabanı geçişlerini yönetebilme yeteneğidir.
Önkoşullar
- Temel C# programlama dili bilgisi.
- Temel OOPS kavramlarını anlama
Bu makalede EF Core geçişleri, bunların neden önemli olduğu ve bunların nasıl kullanılacağı bir örnekle gösterilmektedir. Yani başlamak için:
Öğrenme hedefleri
- Örnekle EF Core geçişi nasıl kullanılır?
- EF Core geçişleri neden önemlidir?
Başlarken
EF Çekirdek Geçişleri, veritabanı şemanızda zaman içinde yapılan değişiklikleri yönetmenin bir yoludur. Veritabanı modelinizde değişiklik yaptığınızda (tablo veya sütun ekleme veya kaldırma gibi), bu değişiklikleri açıklayan bir geçiş oluşturabilirsiniz.
Daha sonra geçişler, veritabanı şemasını yeni modelle eşleşecek şekilde güncellemek için kullanılır.
EF Temel Geçişleri Neden Önemlidir?
EF Çekirdek Geçişleri önemlidir çünkü verileri korurken veritabanı şemanızı zaman içinde geliştirmenize olanak tanır.
Geçişler olmasaydı, modelinizde her değişiklik yaptığınızda veritabanı şemanızı manuel olarak değiştirmeniz gerekir; bu da zaman alıcı ve hataya açık olabilir.
Geçişler ayrıca veritabanı şemanızı sürümlendirmenin bir yolunu da sağlar; böylece değişiklikleri kolayca izleyebilir ve gerekirse önceki sürümlere geri dönebilirsiniz.
EF Temel Geçişleri Nasıl Kullanılır?
EF Temel Geçişlerini kullanmak için birkaç adımı uygulamanız gerekir:
- Yeni bir EF Core projesi oluşturun. İlk adım Visual Studio'da yeni bir EF Core projesi oluşturmaktır. Bunu "Create a new project" seçeneğini seçip ardından "ASP.NET Core Web Application" seçeneğini seçip "Web Application (Model-View-Controller)" şablonunu seçerek yapabilirsiniz.
- Bir veritabanı bağlamı oluşturun. Bir sonraki adım, bir veritabanı bağlam sınıfı oluşturmaktır. Bu sınıf, .NET nesneleriniz ile veritabanı arasındaki etkileşimleri yönetir. Veritabanı bağlamı oluşturmak için projenizde yeni bir sınıf oluşturun ve onu DbContext sınıfından devralın.
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }
Veritabanı Modeli Oluşturun
Bir veritabanı bağlamı oluşturduktan sonra bir veritabanı modeli oluşturmanız gerekecektir. Bu model, veritabanınızın yapısını temsil eder ve EF Core tarafından veritabanı tabloları ve sütunları oluşturmak için kullanılır.
Veritabanı modeli oluşturmak için projenizde yeni bir sınıf oluşturun ve özelliklerini veritabanı alanları olarak tanımlayın.
public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
EF Temel Geçişlerini Etkinleştir
Daha sonra projenizde EF Temel Geçişlerini etkinleştirmeniz gerekir. Bunu yapmak için Paket Yönetici Konsolu'nu açın ve aşağıdaki komutu girin:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Bu paket, EF Temel Geçişlerini oluşturmak ve yönetmek için gereken araçları içerir.
Taşıma Oluşturma
EF Core Migrations etkinleştirildiğinde ilk geçişinizi oluşturabilirsiniz. Geçiş oluşturmak için Paket Yönetici Konsolu'nu açın ve aşağıdaki komutu girin:
PM> Add-Migration InitialCreate
Bu, veritabanı modelinizde yaptığınız değişiklikleri açıklayan "InitialCreate" adlı yeni bir geçiş oluşturacaktır. Taşımanın içeriğini projenizin "Taşımalar" klasöründe görüntüleyebilirsiniz.
Veritabanını Güncelle
Geçiş oluşturduktan sonra veritabanı şemasını yeni modelle eşleşecek şekilde güncelleyebilirsiniz. Bunu yapmak için Paket Yönetici Konsolu'nu açın ve aşağıdaki komutu girin:
PM> Update-Database
Bu, geçişi veritabanına uygulayacak ve şemasını güncelleyecektir.
Örnek
EF Temel Geçişlerini kullanma örneğine bakalım. Diyelim ki iki sütunlu basit bir "Öğrenciler" tablosu oluşturmak istiyoruz: "Kimlik" ve "Ad". Visual Studio'da yeni bir ASP.NET Core Web Application projesi oluşturarak başlayacağız.
- Yeni bir EF Core projesi oluşturun. Visual Studio'da yeni bir ASP.NET Core Web Uygulaması projesi oluşturun. "Web Uygulaması (Model-Görünüm-Denetleyici)" şablonunu seçin ve Kimlik Doğrulama için "Bireysel Kullanıcı Hesapları"nı seçin. Projeye "EFCoreMigrationsExample" adını verin.
- Bir veritabanı bağlamı oluşturun. Projenin "Models" klasöründe "MyDbContext" adında yeni bir sınıf oluşturun ve bunu DbContext sınıfından devralın.
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
"Öğrenciler" özelliği, veritabanımızın "Öğrenciler" tablosunu temsil eden bir DbSet'tir.
Veritabanı Modeli Oluşturun
Projenin "Modeller" klasöründe yeni bir "Öğrenci" sınıfı oluşturun ve özelliklerini tanımlayın.
namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
EF Temel Geçişlerini Etkinleştir
Paket Yönetici Konsolu'nu açın ve EF Core araçları paketini yüklemek için aşağıdaki komutu girin:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
Taşıma Oluşturma
Paket Yönetici Konsolu'nu açın ve geçiş oluşturmak için aşağıdaki komutu girin:
PM> Add-Migration InitialCreate
Bu, veritabanı modelimizde yaptığımız değişiklikleri açıklayan "InitialCreate" adında yeni bir geçiş yaratacaktır.
Taşıma dosyası şu şekilde görünmelidir:
using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }
Taşıma işlemi, "Kimlik" ve "Ad" sütunlarını içeren "Öğrenciler" adlı yeni bir tablo oluşturur. Veritabanını güncelleyin Paket Yönetici Konsolu'nu açın ve veritabanı şemasını güncellemek için aşağıdaki komutu girin:
PM> Update-Database
Bu, geçişi veritabanına uygulayacak ve şemasını güncelleyecektir.
Artık EF Core'u kullanarak veritabanımıza öğrenci ekleyebilir, güncelleyebilir ve silebiliriz. Örneğin veritabanına yeni bir öğrenciyi şu şekilde ekleyebiliriz:
using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }
Bu kod, Öğrenci sınıfının yeni bir örneğini oluşturur ve Name özelliğini "John" olarak ayarlar. Daha sonra öğrenciyi Students DbSet'e ekler ve değişiklikleri veritabanına kaydeder.
Çözüm
EF Core Migrations, uygulamanızdaki veritabanı şeması değişikliklerini yönetmenin kolay bir yolunu sunar.
Bu makalede, DbContext oluşturma, model tanımlama, geçiş yapma ve veritabanı şemasını güncelleme dahil olmak üzere EF Core geçişlerini kullanarak basit bir veritabanı şemasının nasıl oluşturulacağı gösterilmektedir.
Bu, EF Core'un yapabileceklerinin yalnızca başlangıcıdır. Verileri sorgulamak ve işlemek, tablolar arasında karmaşık ilişkiler oluşturmak ve daha fazlasını yapmak için EF Core'u kullanabilirsiniz. Kullanım kolaylığı ve geniş özellik yelpazesiyle EF Core, .NET'te veri odaklı uygulamalar oluşturmak için mükemmel bir seçimdir.
Bu makale EF Core geçişlerine başlamanıza yardımcı oldu. Herhangi bir sorunuz veya yorumunuz varsa lütfen aşağıya bırakın. Mutlu kodlama!
Beni takip et
, , , ,
da yayınlandı