İlgili Verilerin Açıkça Yüklenmesi
Belirtik yükleme
Bir gezinti özelliğini API aracılığıyla DbContext.Entry(...)
açıkça yükleyebilirsiniz.
using (var context = new BloggingContext())
{
var blog = context.Blogs
.Single(b => b.BlogId == 1);
context.Entry(blog)
.Collection(b => b.Posts)
.Load();
context.Entry(blog)
.Reference(b => b.Owner)
.Load();
}
Ayrıca, ilgili varlıkları döndüren ayrı bir sorgu yürüterek bir gezinti özelliğini açıkça yükleyebilirsiniz. Değişiklik izleme etkinleştirilirse, sorgu bir varlığı oluştururken EF Core yeni yüklenen varlığın gezinti özelliklerini otomatik olarak önceden yüklenmiş olan varlıklara başvurmak üzere ayarlar ve zaten yüklenmiş varlıkların gezinti özelliklerini yeni yüklenen varlığa başvurmak üzere ayarlar.
İlgili varlıkları sorgulama
Gezinti özelliğinin içeriğini temsil eden bir LINQ sorgusu da alabilirsiniz.
Bu, sorgu üzerinde diğer işleçleri uygulamanızı sağlar. Örneğin, bir toplama işlecini belleğe yüklemeden ilgili varlıklara uygulama.
using (var context = new BloggingContext())
{
var blog = context.Blogs
.Single(b => b.BlogId == 1);
var postCount = context.Entry(blog)
.Collection(b => b.Posts)
.Query()
.Count();
}
Belleğe hangi ilgili varlıkların yüklendiğini de filtreleyebilirsiniz.
using (var context = new BloggingContext())
{
var blog = context.Blogs
.Single(b => b.BlogId == 1);
var goodPosts = context.Entry(blog)
.Collection(b => b.Posts)
.Query()
.Where(p => p.Rating > 3)
.ToList();
}