Middle
C#'ta ilişkili varlıkların yüklenmesi nasıl gerçekleşir?
sobes.tech yapay zeka
AI'dan gelen yanıt
C# dilinde ilişkili varlıkların yüklenmesi genellikle Entity Framework Core gibi ORM kütüphaneleri kullanılarak yapılır. Temel yaklaşımlar:
- İstekli (Eager) yükleme: İlişkili veriler, ana varlıkla birlikte tek bir veritabanı sorgusunda yüklenir.
// Include yöntemi kullanılarak istekli yükleme var postsWithComments = context.Posts .Include(p => p.Comments) .ToList(); - Açık (Explicit) yükleme: İlişkili veriler, ana varlık alındıktan sonra açıkça yüklenir.
Tekil gezinme özellikleri için// Ana varlığın alınması var post = context.Posts.Find(1); // İlişkili yorumların açık yüklenmesi context.Entry(post) .Collection(p => p.Comments) .Load();.Reference()kullanılır,.Collection()yerine.// İlişkili yazarın açık yüklenmesi context.Entry(post) .Reference(p => p.Author) .Load(); - Tembel (Lazy) yükleme: İlişkili veriler, ilk erişimde otomatik olarak yüklenir. Proxy yapılandırması veya bağımlılık enjeksiyonu gerektirir ve bazı ORM'lerde varsayılan davranıştır.
Entity Framework Core'da,// Tembel yükleme etkinleştirilmişse var post = context.Posts.Find(1); // Comments'e erişim yüklemeyi tetikler int commentCount = post.Comments.Count;Microsoft.EntityFrameworkCore.Proxiespaketinin kurulması ve.UseLazyLoadingProxies()çağrısıDbContextyapılandırmasında gereklidir. Gezinti özelliklerivirtualolarak tanımlanmalıdır.
Yöntem seçimi kullanım senaryosuna ve performans (sorgu sayısı) ile yüklenen veri hacmi arasındaki dengeye bağlıdır.