Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pemuatan eksplisit
Anda dapat secara eksplisit memuat properti navigasi melalui DbContext.Entry(...) API.
using (var context = new BloggingContext())
{
var blog = await context.Blogs
.SingleAsync(b => b.BlogId == 1);
await context.Entry(blog)
.Collection(b => b.Posts)
.LoadAsync();
await context.Entry(blog)
.Reference(b => b.Owner)
.LoadAsync();
}
Anda juga dapat secara eksplisit memuat properti navigasi dengan menjalankan kueri terpisah yang mengembalikan entitas terkait. Jika pelacakan perubahan diaktifkan, maka ketika suatu kueri mewujudkan sebuah entitas, EF Core secara otomatis akan mengatur properti navigasi dari entitas yang baru dimuat untuk merujuk ke entitas apa pun yang sudah dimuat, dan mengatur properti navigasi dari entitas yang sudah dimuat untuk merujuk ke entitas yang baru dimuat.
Mengkueri entitas terkait
Anda juga bisa mendapatkan kueri LINQ yang mewakili konten properti navigasi.
Ini memungkinkan Anda menerapkan operator lain pada kueri. Misalnya, menerapkan operator agregat atas entitas terkait tanpa memuatnya ke dalam memori.
using (var context = new BloggingContext())
{
var blog = await context.Blogs
.SingleAsync(b => b.BlogId == 1);
var postCount = await context.Entry(blog)
.Collection(b => b.Posts)
.Query()
.CountAsync();
}
Anda juga dapat memfilter entitas terkait mana yang dimuat ke dalam memori.
using (var context = new BloggingContext())
{
var blog = await context.Blogs
.SingleAsync(b => b.BlogId == 1);
var goodPosts = await context.Entry(blog)
.Collection(b => b.Posts)
.Query()
.Where(p => p.Rating > 3)
.ToListAsync();
}