IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Entity Framework Core (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 23 Nisan 2026

Modern yazılım geliştirme dünyasında, verimli veri yönetimi çok önemlidir. İster basit bir uygulama, ister karmaşık bir kurumsal sistem geliştiriyor olun, verilere etkin erişim, manipülasyon ve kaydetme temel bir gerekliliktir. C#'ta Entity Framework Core (EF Core), veritabanı erişimini basitleştirerek veritabanlarıyla nesne yönelimli bir yaklaşım sunan güçlü bir araçtır. Bu makalede, EF Core'un dünyasına dalarak, özelliklerini, yeteneklerini ve en iyi uygulamalarını keşfedeceğiz. Ayrıca, PDF belgelerini okumak, yazmak ve yönetmek için IronPDF için PDF Belgeleri Yönetme kategorisinden Iron Software Solutions hakkında bir göz atacağız. Her iki paketle birlikte pratik bir örnek oluşturacağız.

Entity Framework Core'u Anlamak

Entity Framework Core, popüler Entity Framework veri erişim teknolojisinin açık kaynaklı, hafif ve genişletilebilir bir sürümüdür. SQL Server, SQLite, MySQL, PostgreSQL, Azure Cosmos DB ve daha fazlası dahil olmak üzere çeşitli mevcut veritabanı sunucu sağlayıcılarını destekleyerek platformlar arası çalışmak üzere tasarlanmıştır. EF Core, modern bir nesne veritabanı eşleyicisidir ve ORM (Nesne-İlişkisel Eşleme) modelini takip eder, geliştiricilere .NET nesnelerini kullanarak veritabanları ile çalışma olanağı sağlar, bu da sıkıcı SQL sorgularını manuel olarak yazma ihtiyacını ortadan kaldırır.

EF Core'un Temel Özellikleri

  1. Varlıkları Modelleme: EF Core, geliştiricilerin Sade Eski CLR Nesnelerini (POCO'lar) kullanarak veri modellerini tanımlamalarını sağlar. Bu kimlik sınıfları, veritabanı tablolarını temsil eder ve özellikler tablo sütunlarına eşlenir.

  2. LINQ Desteği: EF Core, SQL Server veya başka bir veritabanına karşı güçlü tipte sorgular yazmanıza olanak tanıyan LINQ sorgularını (Dil Entegre Sorgu) sorunsuz bir şekilde destekler. Bu, veri sorgulamasını sezgisel hale getirir ve çalışma zamanı hatalarının olasılığını azaltır. Ayrıca, LINQ sorgularıyla birlikte ham SQL ifadeleri de kullanılabilir.

  3. Veritabanı Göçleri: Veritabanı şeması değişikliklerini yönetmek, özellikle bir ekip ortamında zorlu olabilir. EF Core, kod öncelikli göçler kullanarak veritabanı şemasına artımlı değişiklikler uygulamanızı sağlar.

  4. Yavaş Yükleme ve Hızlı Yükleme: EF Core, hem yavaş yükleme hem de hızlı yükleme stratejilerini destekler, bu da geliştiricilerin kullanıma göre ilgili verileri talep üzerine veya önceden yükleyerek performansı optimize etmelerini sağlar.

  5. İşlem Yönetimi: İşlemler, veritabanı işlemleri sırasında veri tutarlılığı ve bütünlüğünü sağlar. EF Core, geliştiricilere işlemlerle açıkça çalışma olanağı sağlar, bu da bir grup veritabanı işleminin ya başarılı olması gerektiğini ya da birlikte başarısız olmasını sağlar.

  6. Eşzamanlılık Kontrolü: EF Core, eşzamanlılık çatışmalarını yönetmek için yerleşik destek sunar, birçok kullanıcının aynı verileri aynı anda değiştirmeye çalıştıklarında çatışmaları tespit etmelerine ve çözmelerine olanak tanır.

EF Core ile Başlamak

ASP.NET Core uygulamasında Entity Framework Core (EF Core) ile SQLite kullanmanın temel bir örneğini oluşturacağız. İşte adımlar:

  1. Uygulamanızı Oluşturun:

    • Bir Console veya ASP.NET uygulaması oluşturarak başlayın.
  2. Gerekli Paketleri Kurun:

    • Projenize aşağıdaki NuGet paketlerini ekleyin:

      • Microsoft.EntityFrameworkCore (sürüm 1.0.0 veya üstü)
      • Microsoft.EntityFrameworkCore.Sqlite (sürüm 1.0.0 veya üstü)
  3. Veritabanı Bağlamınızı Oluşturun:

    • Veritabanı bağlamınız için DatabaseContext gibi bir sınıf tanımlayın ve DbContext'den türetin.

    • OnConfiguring yönteminde, SQLite bağlantı dizesini ayarlayın:

      public class DatabaseContext : DbContext
      {
          protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
          {
              optionsBuilder.UseSqlite("Filename=sample.db");
          }
      }
      C#
  4. Bağlamı Kaydedin:

    • Startup sınıfınızda, bağlamınızı servislere ekleyin:

      public void ConfigureServices(IServiceCollection services)
      {
          services.AddEntityFrameworkSqlite().AddDbContext<DatabaseContext>();
      }
      C#
  5. Başlangıçta Veritabanını Oluşturun:

    • Startup yapıcısında, veritabanınızı oluşturun:

      public Startup(IHostingEnvironment env)
      {
          using (var client = new DatabaseContext())
          {
              client.Database.EnsureCreated();
          }
      }
      C#
  6. Uygulamanızda SQLite Kullanın:

    • Artık EF Core ile ASP.NET Core uygulamanızda SQLite kullanabilirsiniz.
    • Modellerinizi tanımlayın ve veritabanı ile etkileşim kurmak için DatabaseContext kullanın.

Bu temel bir örnektir ve bağlantı dizesini yapılandırmak ve EF Core'u kullanmanın başka yolları da vardır. Daha gelişmiş özellikleri keşfetmekten çekinmeyin ve bunu özel ihtiyaçlarınıza uyarlayın!

EF Core Geliştirme için En İyi Uygulamalar

  1. DbContext'i Kapsamda Tutun: EF Core'daki DbContext örnekleri kısa ömürlü olacak şekilde tasarlanmıştır ve web uygulamalarında genellikle tek bir isteğin ömrüne yönelik tutulmalıdır.

  2. Sadece Okuma İşlemleri için AsNoTracking Kullanma: Varlıkların değiştirilmesi beklenmeyen sadece okuma işlemleri sırasında, değişiklik takibini atlayarak performansı artırmak için AsNoTracking yöntemini kullanın.

  3. Sorguları Optimize Edin: Veritabanından alınan veri miktarını minimize etmek için uygun indeksleme, sayfalama ve filtreleme tekniklerini kullanarak verimli sorgular yazın.

  4. N+1 Sorgu Sorunlarından Kaçının: Bir koleksiyondaki her ilgili varlık için bir sorgunun yürütüldüğü N+1 sorgu problemine dikkat edin. İlgili verileri verimli bir şekilde almak için hızlı yükleme veya açık yükleme kullanın.

  5. Performansı İzleyin: Performans darboğazlarını belirlemek ve bunlara hitap etmek için Entity Framework Profiler veya yerleşik loglama yetenekleri gibi araçları kullanarak EF Core performansını izleyin.

IronPDF'ye Giriş

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 1 - IronPDF

IronPDF, .NET projelerinde PDF belgeleri oluşturmanızı, düzenlemenizi ve içerik çıkartmanızı sağlayan güçlü bir C# PDF kütüphanesidir. İşte bazı temel özellikler:

  1. HTML'den PDF'ye Dönüştürme:

    • HTML, CSS ve JavaScript içeriğini PDF formatına dönüştürün.
    • Piksel-mükemmellikte PDF'ler için Chrome Rendering Engine'i kullanın.
    • URL'lerden, HTML dosyalarından veya HTML dizelerinden PDF üretin.
  2. Görüntü ve İçerik Dönüştürme:

    • Resimleri PDF'ye ve PDF'den dönüştürün.
    • Mevcut PDF'den metin ve resim çıkarın.
    • Çeşitli resim formatları için destek.
  3. Düzenleme ve Manipülasyon:

    • PDF'ler için özellikleri, güvenliği ve izinleri ayarlayın.
    • Dijital imzalar ekleyin.
    • Meta verileri ve revizyon geçmişini düzenleyin.
  4. Çapraz Platform Desteği:

    • .NET Core (8, 7, 6, 5, ve 3.1+), .NET Standard (2.0+), ve .NET Framework (4.6.2+) ile çalışır.
    • Windows, Linux ve macOS ile uyumludur.
    • Kolay kurulum için NuGet üzerinde mevcuttur.

IronPDF ve EF Core ile PDF Belgesi Oluşturun

Başlangıç olarak, aşağıda olduğu gibi Visual Studio kullanarak bir Console uygulaması oluşturun.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 2 - Yeni Proje

Proje Adını Sağlayın.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 3 - Proje Yapılandırması

.NET çapraz platform sürümünü sağlayın.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 4 - Framework

Microsoft.EntityFrameworkCore paketini yükleyin.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 5 - Microsoft.EntityFrameworkCore paketi

Microsoft.EntityFrameworkCore.SqlLite paketini yükleyin.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 6 - Microsoft.EntityFrameworkCore.SqlLite paketi

IronPDF paketini yükleyin.

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 7 - IronPDF

Aşağıdaki kodu Program.cs ekleyin.

using IronPdf;
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;

namespace CodeSample
{
    public class Program
    {
        public static void Main()
        {
            Console.WriteLine("-------------Demo EF core and IronPDF--------------");
            
            // Disable local disk access or cross-origin requests
            Installation.EnableWebSecurity = true;
            
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            
            // Start with initial HTML content
            var content = "<h1>Demo EF core and IronPDF</h1>";
            content += "<h2>Add Students</h2>";
            
            // Add Students to Database
            using (var client = new DatabaseContext())
            {
                client.Database.EnsureCreated(); // Create table if it doesn't exist
                client.Students.ExecuteDelete(); // Ensure the table is clean

                // Define students
                var students = new[]
                {
                    new Student { StudentName = "Bill", DateOfBirth = new DateTime(1990, 12, 01), Height = 5.45M, Weight = 56, Grade = 10 },
                    new Student { StudentName = "Mike", DateOfBirth = new DateTime(1992, 12, 06), Height = 4.45M, Weight = 34, Grade = 8 },
                    new Student { StudentName = "Peter", DateOfBirth = new DateTime(1990, 12, 03), Height = 5.0M, Weight = 50, Grade = 10 },
                    new Student { StudentName = "Bob", DateOfBirth = new DateTime(1990, 12, 09), Height = 4.56M, Weight = 56, Grade = 10 },
                    new Student { StudentName = "Harry", DateOfBirth = new DateTime(1990, 12, 21), Height = 5.6M, Weight = 56, Grade = 10 },
                    new Student { StudentName = "Charle", DateOfBirth = new DateTime(1993, 12, 11), Height = 5.5M, Weight = 56, Grade = 7 }
                };

                // Add students to database
                client.Students.AddRange(students);
                client.SaveChanges();

                // Add students info to HTML content
                foreach (var student in students)
                {
                    content = AddStudent(content, student);
                }
            }

            content += "<h2>Display Students in Database</h2>";
            
            // Display Students in Database
            using (var client = new DatabaseContext())
            {
                Console.WriteLine($"Displaying Students in Database:");
                var students = client.Students.ToList();
                
                foreach (var student in students)
                {
                    Console.WriteLine($"Name= {student.StudentName}, ID={student.StudentID}, Grade={student.Grade}, Weight={student.Weight}, Height={student.Height}");
                    content = AddStudent(content, student);
                }
            }           
            
            // Render HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf(content);
            
            // Export to a file or stream
            pdf.SaveAs("AwesomeEfCoreAndIronPdf.pdf");
        }

        // Helper method to add student info as HTML content
        private static string AddStudent(string content, Student student)
        {
            content += $"<p Name = {student.StudentName}, ID={student.StudentID}, Grade={student.Grade}, Weight={student.Weight}, Height={student.Height}</p>";
            return content;
        }
    }
    
    public class DatabaseContext : DbContext
    {
        public DbSet<Student> Students { get; set; }
        
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Filename=IronPdfDemo.db");
        }        
    }
    
    public class Student
    {
        public int StudentID { get; set; }
        public string StudentName { get; set; }
        public DateTime? DateOfBirth { get; set; }
        public decimal Height { get; set; }
        public float Weight { get; set; }
        public int Grade { get; set; }
    }
}
C#

Kod Açıklaması

  1. Yapılandırıcı ve İçerik Ayarlama:

    • Kod, öğrencilerin veritabanına eklenmesi için bir başlık (<h1>) ve alt başlık (<h2>) ile HTML içerik dizesi oluşturarak başlar.
    • Amaç, IronPDF kullanarak içeriğinde öğrenciler hakkında bilgi bulunduran bir PDF belgesi oluşturmaktır.
  2. Veritabanı Bağlamı ve Öğrenci Ekleme:

    • Veritabanı ile etkileşim kurmak için DatabaseContext sınıfı kullanılır.
    • client.Database.EnsureCreated(); veritabanı ve tablonun varlığını garanti eder.
    • client.Students.ExecuteDelete(); mevcut verileri Students tablosundan temizler.
    • Öğrenciler tanımlanır ve veritabanına eklenir. Özellikler StudentName, DateOfBirth, Height, Weight, ve Grade içerir.
    • client.SaveChanges(); veritabanına yapılan değişiklikleri kaydeder.
  3. Öğrencileri Görüntüleme:

    • Kod, tüm öğrencileri client.Students.ToList(); kullanarak alır.
    • Her öğrenci için adlarını, kimlik numaralarını, notlarını, ağırlıklarını ve boylarını yazdırır ve bu bilgileri HTML içeriğine ekler.
  4. PDF'ye Dönüştürme:

    • ChromePdfRenderer örneklenir.
    • HTML içerik, renderer.RenderHtmlAsPdf(content) kullanılarak bir PDF'ye dönüştürülür.
    • Son olarak, PDF, "AwesomeEfCoreAndIronPdf.pdf" olarak kaydedilir.

Çıktı

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 8 - Konsol Çıkışı

PDF

Entity Framework Core (Geliştiriciler için Nasıl Çalışır): Şekil 9 - PDF Çıkışı

IronPDF Lisanslama

IronPDF paketi çalıştırmak ve PDF oluşturmak için bir lisansa ihtiyaç duyar. Pakete erişilmeden önce uygulamanın başına aşağıdaki kodu ekleyin.

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";

IronPDF Lisans Sayfasından bir deneme lisansı mevcuttur.

Sonuç

C#'ta Entity Framework Core, LINQ desteği, veritabanı göçleri ve işlem yönetimi gibi özellikler sunarak veritabanlarıyla etkileşim kurmanın sağlam ve sezgisel bir yolunu sağlar. En iyi uygulamaları takip ederek ve onun güçlü yeteneklerini kullanarak, geliştiriciler kolaylıkla ölçeklenebilir ve bakımı yapılabilir uygulamalar oluşturabilir. İster deneyimli bir geliştirici olun ister yeni başlıyor olun, EF Core, modern veritabanı erişimi için C# uygulamalarında değerlendirilecek değerli bir araçtır. Diğer yandan, IronPDF, uygulamalarınız dahilinde PDF belgeleri oluşturmak, manipüle etmek ve render etmek için bir .NET kütüphanesidir. HTML içeriğini (resimler dahil) bir PDF dosyasına dönüştürmek için EF Core ile birlikte kullanabilirsiniz.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez