Linq i EF - do czego służy Include()?

0

Czytam o Include w dokumentacji i wciaz nie łapie kiedy i jak używać.
Czy Include() w **MethodSyntax **to jest odpowiednik **join **z QuerySyntax?

2

Nie wiem co robi join z query syntax, ale Include będzie zaciągać określone relacje.

np. Person ma property Phone, to bez Includa Phone będzie nullem, bo nie wczytałeś go z bazy.

https://docs.microsoft.com/en-US/ef/core/querying/related-data

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
        .Include(blog => blog.Owner)
        .ToList();
}

Bez includów nie pobrałbyś postów, które są na tym blogu oraz informacji o właścicielu.

2

To co napisał @WeiXiao przy założeniu że masz wyłącznie lazy loading. Include wymusza eager loading czyli załadowanie z bazy zkazanych w include encji.
Używać wtedy gdy masz wyloączone lazy loading A chcesz pobrać od razu rekord rodzica z jakimiś dziećmi.

3
goodfather napisał(a):

Czy Include() w **MethodSyntax **to jest odpowiednik **join **z QuerySyntax?

Odpowiednikiem join jest metoda nazwana pewnie dla zmyłki Join.

1 użytkowników online, w tym zalogowanych: 0, gości: 1