Aracılığıyla paylaş


İ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.

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();
}