Entity Framework Core (kısaca EF Core), .NET uygulamalarında veritabanıyla tablo ve SQL yerine C# nesneleri üzerinden çalışmanızı sağlayan, Microsoft tarafından geliştirilen açık kaynaklı ve platformlar arası bir veri erişim teknolojisidir. Bu rehber, EF Core'u sıfırdan öğrenmek isteyen ya da belirli bir konuda takılan bir .NET geliştiricisi için hazırlanmış 50 yazılık serinin giriş noktasıdır: önce EF Core'un ne olduğunu ve hangi sürümün güncel olduğunu kısaca anlatıyor, ardından serideki 49 yazıyı öğrenme sırasına göre gruplayıp her birinin ne anlattığını özetliyor.
Serideki bilgiler, Microsoft Learn üzerindeki resmî EF Core dokümantasyonuna dayanır. Belgeler EF Core 10'u güncel sürüm olarak anlatıyor; EF Core 11 ise geliştirme aşamasında. C# dilinin ve .NET platformunun kendisini bu seride yeniden anlatmıyoruz; o temel için C# nedir yazımıza bakabilirsiniz. Burada odak tamamen veri erişimi: modeli kurmak, şemayı migration ile yönetmek, sorgu yazmak, veriyi kaydetmek ve uygulamayı kendi sunucunuzda güvenle çalıştırmak.
EF Core nedir?
Resmî tanıma göre EF Core, yaygın kullanılan Entity Framework veri erişim teknolojisinin hafif, genişletilebilir, açık kaynaklı ve platformlar arası sürümüdür. Bir nesne-ilişkisel eşleyici (O/RM) olarak iki şey yapar: .NET geliştiricilerinin veritabanıyla .NET nesneleri kullanarak çalışmasını sağlar ve normalde elle yazılması gereken veri erişim kodunun büyük bölümünü ortadan kaldırır. SQL Server, SQLite, PostgreSQL, MySQL gibi farklı veritabanlarıyla "veritabanı sağlayıcısı" adı verilen eklenti kütüphaneler aracılığıyla konuşur.
EF Core'da veri erişimi bir model üzerinden yapılır. Model, entity sınıflarından ve veritabanıyla bir oturumu temsil eden bir context nesnesinden oluşur. Context nesnesi, yani DbContext türeyen sınıfınız, hem sorgulamayı hem de kaydetmeyi mümkün kılar. Belgeler iki model geliştirme yaklaşımı tanımlar: var olan bir veritabanından model üretmek (database first, scaffolding) ya da modeli elle yazıp veritabanını bu modele göre oluşturmak. İkinci yolda veritabanı, EF Migrations ile modelden oluşturulur ve model değiştikçe migration'larla birlikte evrilir.
Aşağıdaki kısa örnek, resmî genel bakış sayfasındaki modelin sadeleştirilmiş hâlidir. BloggingContext context sınıfıdır; Blog ve Post entity sınıflarıdır; DbSet<Blog> özelliği bu türün modele dahil edildiğini ve sorgulanabileceğini gösterir.
using Microsoft.EntityFrameworkCore;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0");
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public int Rating { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}Sorgular LINQ ile yazılır; EF Core bunları seçtiğiniz veritabanının SQL lehçesine çevirir. Kaydetme ise entity nesnelerini context'e ekleyip, değiştirip ya da silip ardından SaveChangesAsync çağırarak yapılır. Belgedeki iki kısa örnek şöyle:
using (var db = new BloggingContext())
{
var blogs = await db.Blogs
.Where(b => b.Rating > 3)
.OrderBy(b => b.Url)
.ToListAsync();
}
using (var db = new BloggingContext())
{
var blog = new Blog { Url = "http://sample.com" };
db.Blogs.Add(blog);
await db.SaveChangesAsync();
}İlk blok, puanı 3'ten büyük blogları adrese göre sıralayıp listeler; ikinci blok yeni bir blog satırı ekler. Bağlantı dizesinin koda gömülmesi burada yalnızca örneği kısa tutmak içindir; gerçek uygulamada bu bilgiyi kodun dışında tutmanız gerekir (bkz. connection string yönetimi).
Hangi sürüm güncel?
Belgelerin bu seride kullanılan kopyasına göre güncel kararlı sürüm EF Core 10.0'dır. EF10 Kasım 2025'te yayımlandı, uzun süreli destek (LTS) sürümüdür ve 10 Kasım 2028'e kadar desteklenecek. EF10 derlemek için .NET 10 SDK'sını, çalışmak için .NET 10 çalışma zamanını ister; daha eski .NET sürümlerinde ve .NET Framework üzerinde çalışmaz. Sürüm tablosunda EF Core 9.0 ve 8.0 .NET 8 hedefli olarak listelenir ve her ikisinin desteği 10 Kasım 2026'da biter; yani bu sürümlerdeyseniz EF10'a geçişi planlamanın zamanı gelmiş demektir.
Bir sonraki sürüm olan EF Core 11.0 (EF11), sürüm sayfasında Kasım 2026 için planlanmış olarak görünür ve "What's New" sayfası onu hâlâ geliştirme aşamasında olarak tanımlar. EF11 de kendi .NET 11 SDK'sını ve çalışma zamanını isteyecek. Seride EF11'den yalnızca belgelerde "EF Core 11'de eklendi" diye işaretlenmiş özellikleri, geliştirme aşamasında olduklarını belirterek anıyoruz.
Güncelleme konusunda belgelerin önerisi nettir: desteklenen bir sürümün her zaman en son yamasını kullanın (EF Core 10.0 için 10.0.x içindeki en yüksek x). Ana sürüm geçişleri (örneğin 9'dan 10'a) çoğu zaman kırıcı değişiklik içerir ve kapsamlı test gerektirir; küçük sürüm güncellemeleri genellikle kırıcı değişiklik içermez ama yeni özellikler gerilemeye yol açabileceği için yine test önerilir. EF10'daki değişikliklerin tamamı için EF Core 10 yenilikler ve breaking changes yazısına bakabilirsiniz.
Üretimde EF Core kullanırken akılda tutulacaklar

Resmî genel bakış sayfası, herhangi bir O/RM için geçerli olan ve üretimdeki sık hataları önleyen bir dizi öneri sıralar. Serinin pek çok yazısı bu önerilerden birini derinlemesine ele alır; o yüzden onları baştan bilmek, hangi yazıyı ne zaman okuyacağınızı da belirler:
- Veritabanını tanıyın: Yüksek performanslı bir üretim uygulamasını tasarlamak, hata ayıklamak ve veri taşımak için birincil ve yabancı anahtarlar, kısıtlar, indeksler, normalizasyon, DML ve DDL ifadeleri ve veri tipleri gibi konularda en az orta düzey bilgi gerekir. EF Core bu bilginin yerini tutmaz.
- Üretime benzer ortamda test edin: Bazı sorunlar yalnızca belirli bir veritabanı sürümünde ya da sürümünde ortaya çıkar; EF Core veya ASP.NET Core, OData, AutoMapper gibi bağımlılıkları güncellerken gelen kırıcı değişiklikler de ancak böyle yakalanır. Test stratejisi için EF Core test yazma yazısına bakın.
- Gerçekçi yükle performans testi yapın: Belgeler, bazı özelliklerin dikkatsiz kullanımının iyi ölçeklenmediğini söyler: birden çok koleksiyonu aynı anda Include etmek, yoğun lazy loading, indekssiz kolonlarda koşullu sorgular, veritabanı tarafından üretilen değerlerle büyük toplu eklemeler, eşzamanlılık kontrolünün olmaması ve büyük modeller bunlardan bazılarıdır.
- Güvenlik incelemesi yapın: Bağlantı dizeleri ve diğer gizli bilgilerin saklanması, uygulamanın normal çalışırken ihtiyaç duyduğundan fazla veritabanı yetkisi taşımaması, ham SQL için girdi doğrulaması ve hassas verinin şifrelenmesi bu kapsamdadır.
- Loglama ve tanılamayı yeterli tutun: Uygun log yapılandırması ve sorgu etiketleri, sorun anında neyin çalıştığını görmenizi sağlar.
- Hata kurtarmayı planlayın: Sürüm geri alma, yedek sunucular, ölçeklendirme ve veri yedekleri gibi senaryolara önceden hazırlanın.
- Migration'ların uygulanmasını planlayın: Migration'ları uygulama başlarken çalıştırmak eşzamanlılık sorunlarına yol açabilir ve normal çalışma için gerekenden yüksek yetki ister. Üretilen migration'ları üretim verisine uygulamadan önce ayrıntılı inceleyip test edin; tablolar dolduktan sonra şema ve kolon tipleri kolayca değişmez. Belgedeki örneğe göre SQL Server'da
nvarchar(max)vedecimal(18, 2)EF'in varsayılanlarıdır ama çoğu senaryo için en iyi tipler değildir.
Nereden başlamalı?

EF Core'a yeni başlıyorsanız aşağıdaki dört yazıyı bu sırayla okumanızı öneririz. Bu dört adım, bir projeye EF Core eklemekten ilk migration'ı veritabanına uygulamaya kadar olan temel döngüyü kapsar; geri kalan yazıların neredeyse hepsi bu döngünün bir parçasını derinleştirir.
- EF Core kurulumu ve NuGet paketleri: Hangi sağlayıcı paketini, hangi araç paketlerini kuracağınızı ve sürümleri neden aynı tutmanız gerektiğini anlatır.
- İlk EF Core uygulaması: SQLite ve console: Resmî başlangıç öğreticisini adım adım, her satırın ne yaptığını açıklayarak uygular.
- DbContext yapılandırma ve yaşam döngüsü: Context'in ne kadar yaşaması gerektiğini,
AddDbContext,OnConfiguringve factory desenlerini açıklar. - EF Core migration rehberi: Günlük migration iş akışını, üretilen dosyaları ve model değişikliklerini izlemeyi anlatır.
Öğrenme yolları
Serinin geri kalanı sekiz öğrenme yoluna ayrılır. Yolları sırayla izleyebilir ya da ihtiyacınız olan konuya doğrudan atlayabilirsiniz; her yazı, komşu konuyu anlatan kardeş yazıya bağlantı verir ve aynı konuyu iki kez anlatmaz.
1. Başlangıç ve araçlar
Bu yol, EF Core'u projeye eklemek, context'i yapılandırmak ve tasarım zamanı araçlarını çalıştırmakla ilgilidir. Migration ve scaffolding komutlarının arka planda nasıl çalıştığını anlamak, ileride karşılaşacağınız birçok "araç context'i oluşturamadı" türü sorunu çözmenizi kolaylaştırır.
- EF Core connection string yönetimi: Bağlantı dizesini appsettings, user secrets ve ortam bazlı yapılandırmada saklamayı,
Name=sözdizimini ve gizli bilgiyi kaynak koddan uzak tutmayı anlatır. - dotnet ef komutları:
dotnet efaracının kurulumunu, ortak seçenekleri, tüm komutları ve Package Manager Console karşılıklarını tek bir başvuru yazısında toplar. - Design-time DbContext factory: Araçların
DbContextörneğini nasıl oluşturduğunu,IDesignTimeDbContextFactoryarayüzünü ve startup project sorunlarını açıklar.
2. Model oluşturma
EF Core modelinizi önce konvansiyonlarla (adlandırma kuralları) kurar, ardından sizin Fluent API veya data annotation ile verdiğiniz yapılandırmayı uygular. Bu yoldaki yazılar, tabloların ve kolonların nasıl oluştuğunu ayrıntılı biçimde kontrol etmeyi öğretir.
- Model yapılandırma: Fluent API ve data annotations: Konvansiyonları, iki yapılandırma yolunun farkını, tablo ve şema adlarını, türleri modele dahil etmeyi veya dışarıda bırakmayı ve keyless entity türlerini anlatır.
- Property ve kolon yapılandırma: Kolon adı ve tipi, maksimum uzunluk, precision, zorunlu ve isteğe bağlı özellikler, shadow property ve backing field konularını ele alır.
- Primary key ve composite key: Anahtar konvansiyonlarını,
[Key]veHasKeykullanımını, bileşik anahtarları ve alternate key kavramını açıklar. - Default value, computed column ve değer üretimi: Identity kolonları, varsayılan değerleri, hesaplanan kolonları ve sequence kullanımını sağlayıcı farklarıyla birlikte anlatır.
- Index ve unique index:
HasIndexile tekil, bileşik, filtreli ve ek kolon içeren indeksler tanımlamayı ve indeks adlandırmayı gösterir. - Value conversion: enum ve string:
HasConversion, hazır dönüştürücüler, enum değerlerini metin olarak saklama ve value comparer konularını işler. - Data seeding:
UseSeeding,UseAsyncSeedingveHasDataile başlangıç verisi eklemeyi, migration'larla ilişkisini ve sınırlarını anlatır.
3. İlişkiler ve ileri modelleme
Gerçek uygulamalarda entity'ler birbirine bağlıdır. Bu yol önce ilişki kavramlarını ve EF Core'un ilişkileri nasıl keşfettiğini, ardından her ilişki türünün yapılandırmasını ve kalıtım, complex type gibi ileri eşleme seçeneklerini anlatır.
- İlişkiler: navigation ve foreign key: Navigation, foreign key, principal ve dependent kavramlarını ve ilişki konvansiyonlarını açıklar; diğer ilişki yazılarının temelidir.
- One-to-many ilişki:
HasManyveWithOneile bire çok ilişkiyi, zorunlu ve isteğe bağlı ilişkiyi, shadow foreign key ve tek yönlü navigation kullanımını gösterir. - One-to-one ilişki: Bire bir ilişkide dependent tarafın nasıl seçildiğini ve
HasOneileWithOneyapılandırmasını anlatır. - Many-to-many ilişki: Join tablosunu, ek veri taşıyan join entity'yi ve
UsingEntityile özelleştirmeyi ele alır. - Inheritance: TPH, TPT, TPC: Kalıtım hiyerarşisini tablolara eşlemenin üç stratejisini, discriminator kolonunu ve performans farklarını karşılaştırır.
- Complex types, owned types ve JSON kolon: Complex type ile owned entity farkını, JSON kolonlarına eşlemeyi ve EF10'da gelen struct desteğini anlatır.
4. Migration ve şema
Şemayı kod ile birlikte yönetmek EF Core'un en çok kullanılan özelliklerinden biridir. Bu yol, günlük geliştirme iş akışını, üretime güvenli uygulamayı, migration'ları özelleştirmeyi ve var olan bir veritabanından başlamayı birbirinden ayırarak anlatır.
- EF Core migration rehberi: Migration ekleme, kaldırma ve listeleme, üretilen dosyalar ve bekleyen model değişikliklerini kontrol etme gibi günlük adımları anlatır.
- Migration'ları production'a uygulama: SQL script, idempotent script ve migration bundle seçeneklerini, çalışma zamanında
Migrate()çağırmanın risklerini ve yedek almayı karşılaştırır. - Migration özelleştirme ve ham SQL:
migrationBuilder.Sql, kolon yeniden adlandırma, ayrı migration projesi, birden çok sağlayıcı ve takım içi çakışmalar gibi ileri konuları ele alır. - scaffold-dbcontext ile database first: Var olan bir veritabanından model üretmeyi, komut seçeneklerini, yeniden scaffold etmeyi ve T4 şablonlarını anlatır.
- Pending model changes hatası: EF9 ile gelen bekleyen model değişikliği uyarısının nedenlerini ve çözüm yollarını açıklar.
- Veritabanı sağlayıcıları: SQL Server, SQLite: Sağlayıcı listesini, SQL Server ve SQLite'a özgü ayrıntıları ve SQLite'ın sınırlamalarını özetler.
5. Sorgulama
Sorgu yazmak, EF Core ile günlük işin büyük kısmıdır. Bu yol temel LINQ'dan başlayıp ilişkili veriyi yükleme yollarına, izleme davranışına, ham SQL'e, join ve gruplama kalıplarına, global filtrelere, sayfalamaya ve SQL'e çevrilemeyen sorgulara kadar ilerler.
- EF Core LINQ sorguları: Temel LINQ kullanımını, sorgunun arka planda nasıl çalıştığını, null karşılaştırma semantiğini ve collation ile büyük küçük harf duyarlılığını anlatır.
- Include ile eager loading:
Include,ThenInclude, filtreli include ve explicit loading ile ilişkili veriyi yüklemeyi gösterir. - Lazy loading: Proxy ve
ILazyLoaderile tembel yüklemeyi, N+1 sorgu riskini ve serileştirmedeki döngü sorununu ele alır. - Split query ve AsSplitQuery: Kartezyen patlama sorununu, sorguyu birden çok SQL'e bölmeyi ve bunun tutarlılık açısından bedelini anlatır.
- AsNoTracking ve tracking sorguları: İzlenen ve izlenmeyen sorgular arasındaki farkı,
AsNoTrackingWithIdentityResolutionseçeneğini ve varsayılan izleme davranışını açıklar. - FromSql ile ham SQL sorguları:
FromSql,FromSqlRaw,SqlQueryveExecuteSqlAPI'lerini ve EF Core'un parametreleştirmesiyle SQL injection'dan korunmayı anlatır. - Join, GroupBy ve LeftJoin:
Join,GroupJoin,SelectMany,GroupByve EF10 ile gelenLeftJoinileRightJoinoperatörlerini işler. - Global query filter ve soft delete:
HasQueryFilterile silinmiş kayıtları gizlemeyi, EF10'daki adlandırılmış filtreleri ve çok kiracılı yapıyı anlatır. - Sayfalama: Skip, Take ve keyset: Offset tabanlı ve keyset tabanlı sayfalamayı, sıralama ve indeks ihtiyacıyla birlikte karşılaştırır.
- Client evaluation hatası: SQL'e çevrilemeyen sorgularda ne olduğunu, istemci tarafı değerlendirmeyi bilinçli kullanmayı ve
EF.Functionsile kullanıcı tanımlı fonksiyon eşlemeyi anlatır.
6. Performans ve tanılama
Bir sorgu doğru sonuç verse bile yavaş olabilir. Bu yol, performansı ölçmekten ve gereksiz veri çekmeyi önlemekten başlayıp EF Core'un ürettiği SQL'i görmeye ve context havuzlamaya kadar uzanır. Veritabanı tarafındaki indeks ve EXPLAIN incelemesi için PostgreSQL performans optimizasyonu yazısı da yararlıdır.
- EF Core performans optimizasyonu: Yalnızca gereken kolonları çekmeyi, indeks kullanımını, N+1 sorununu, toplu güncellemeyi ve ölçüm yöntemlerini genel bir çerçevede toplar.
- SQL loglama: LogTo ve interceptor:
LogTo, Microsoft.Extensions.Logging entegrasyonu,EnableSensitiveDataLogging,TagWithve interceptor örneklerini anlatır. - DbContext pooling ve compiled query:
AddDbContextPool, havuzlanmış factory, compiled query, compiled model ve NativeAOT desteğini ele alır.
7. Kaydetme ve değişiklik takibi
EF Core yalnızca okumaz, yazar da. Bu yol veriyi eklemeyi, güncellemeyi ve silmeyi, change tracker'ın arka planda neyi izlediğini, bağlantısı kopuk nesnelerle çalışmayı, toplu işlemleri, cascade delete ve eşzamanlılık çakışmalarını anlatır.
- SaveChanges: ekleme, güncelleme, silme:
Add,Update,RemoveveSaveChangesile temel yazma işlemlerini ve ilişkili veriyi kaydetmeyi gösterir. - Change tracker ve EntityState: Entity durumlarını,
Entry()API'sini,DetectChangesçağrısını ve DebugView ile izleme durumunu incelemeyi anlatır. - Disconnected entity: Attach ve Update: Başka bir context'ten gelen nesneleri
AttachveUpdateile işlemeyi ve "already being tracked" hatasının nedenini açıklar. - ExecuteUpdate ve ExecuteDelete: Entity yüklemeden toplu güncelleme ve silme yapmayı, change tracker ile ilişkisini ve EF10'daki lambda değişikliğini anlatır.
- Cascade delete:
OnDeleteileDeleteBehaviordeğerlerini, sahipsiz kalan kayıtların silinmesini ve SQL Server kısıtlarını ele alır. - Concurrency ve rowversion: İyimser eşzamanlılık kontrolünü, concurrency token tanımlamayı ve
DbUpdateConcurrencyExceptionçözümünü anlatır. - Transaction yönetimi: Varsayılan transaction davranışını,
BeginTransaction, savepoint, dış transaction veTransactionScopekullanımını işler.
8. Güvenilirlik, test ve sürümler
Son yol, uygulamanın üretimde sağlam kalmasıyla ilgilidir: async kodda context'i doğru kullanmak, geçici bağlantı hatalarına karşı yeniden deneme, EF Core kullanan kodu test etmek ve güncel sürümün getirdiklerini bilmek.
- Async ve "second operation" hatası: Async metotları doğru kullanmayı, await unutmanın sonuçlarını ve aynı context'in paralel kullanımından doğan hatayı anlatır.
- Connection resiliency: EnableRetryOnFailure: Execution strategy ile otomatik yeniden denemeyi, kullanıcı transaction'larıyla birlikte kullanmayı ve commit belirsizliğini ele alır.
- EF Core test yazma: InMemory ve SQLite: Gerçek veritabanıyla test, SQLite in-memory, InMemory sağlayıcısının sınırları ve repository deseni arasında seçim yapmayı anlatır.
- EF Core 10 yenilikler ve breaking changes: EF10'un yeni özelliklerini, kırıcı değişikliklerini ve geliştirme aşamasındaki EF11 için kısa notları toplar.
Seriyi okurken bilmeniz gerekenler
Yazılardaki kod örnekleri resmî belgelerdeki örneklerden uyarlanmıştır ve belgelerde gösterilmeyen bir çıktıyı (üretilen SQL, log satırı, hata mesajı) kendimiz yazmıyoruz; bir çıktı gösteriyorsak bu, belgenin kendi örnek çıktısıdır. Entity adları çoğu yazıda belgelerle aynı tutuldu (Blog, Post), böylece resmî sayfayla yan yana okurken kolayca eşleştirebilirsiniz.
Seri yalnızca EF Core ile veri erişimini kapsar. ASP.NET Core tarafı, yani controller, endpoint, kimlik doğrulama ve barındırma ayrı bir konudur; burada ASP.NET Core'u yalnızca EF belgelerinin gösterdiği kadarıyla, Program.cs içindeki AddDbContext kaydı ve istek başına context yaşam süresi düzeyinde anıyoruz. Uygulamanızı yayına alırken sunucu tarafı için .NET web hosting rehberimize ve Windows sunucular için Windows hosting rehberimize bakabilirsiniz.
Veritabanı seçimi henüz netleşmediyse önce MySQL ve PostgreSQL karşılaştırmasını okuyabilirsiniz; SQL Server, SQLite, PostgreSQL ve MySQL için ayrı "nedir" yazılarımız da var. MariaDB kullanıyorsanız MariaDB öğrenme rehberi veritabanı tarafını ayrıntılı anlatır.
Sık Sorulan Sorular
EF Core ile Entity Framework 6 aynı şey mi?
Hayır. Belgeler EF Core'u Entity Framework veri erişim teknolojisinin hafif, genişletilebilir ve platformlar arası sürümü olarak tanımlar. Bu seri yalnızca EF Core'u anlatır; güncel EF Core sürümleri .NET Framework üzerinde çalışmaz, belgelere göre .NET Framework'ü destekleyen son EF Core sürümü 3.1'di.
Hangi EF Core sürümüyle başlamalıyım?
Yeni bir proje için belgelerin güncel sürüm olarak anlattığı EF Core 10 mantıklı başlangıç noktasıdır: LTS sürümüdür ve 10 Kasım 2028'e kadar desteklenir. Projeniz henüz .NET 10'a geçemiyorsa EF10'u kullanamazsınız, çünkü EF10 .NET 10 SDK'sı ve çalışma zamanı ister.
Önce veritabanını mı tasarlamalıyım, önce modeli mi?
İkisi de desteklenir. Elinizde hazır bir veritabanı varsa scaffolding ile model üretebilirsiniz; sıfırdan başlıyorsanız modeli C# ile yazıp migration'larla veritabanını oluşturmak daha yaygın yoldur. Belgeler, ileride migration kullanmayı düşünüyorsanız baştan migration ile başlamayı önerir.
EF Core kullanmak için SQL bilmem gerekir mi?
Basit sorgular için SQL yazmanız gerekmez, ama resmî belgeler üretim uygulamaları için veritabanı sunucusunu orta düzeyde tanımayı açıkça şart koşar. EF Core'un ürettiği SQL'i okuyabilmek, indeks ve anahtar kavramlarını bilmek, performans sorunlarını çözerken büyük fark yaratır; ürettiği SQL'i görmek için SQL loglama yazısına bakın.
Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: C# nedir · EF Core kurulumu · İlk EF Core uygulaması · EF Core 10 yenilikleri