Entity Framework - load lazy przez virtual - o co chodzi?

0

Witam,
Czytam sobie następujący tutorial:
http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-6

Nie rozumiem następującej rzeczy:

While we’re there, we’ve also changed the Genre and Artist to virtual properties. This allows Entity Framework to lazy-load them as necessary.

public virtual Genre Genre { get; set; } public virtual Artist Artist { get; set; } ```

After having added these attributes to our Album model, our Create and Edit screen immediately begin validating fields and using the Display Names we’ve chosen (e.g. Album Art Url instead of AlbumArtUrl). Run the application and browse to /StoreManager/Create.

Nie rozumiem tego. Domyślam się, że chodzi o pewną formę przeciążenia słowa kluczowego virtual. Czy ktoś mógłby to wytłumaczyć?

Pozdrawiam,

0

Lazy loading w językach obiektowych można realizować właśnie poprzez wirtualne gettry/settery. EF sobie dynamicznie stworzy klasę, która dziedziczy po twoim modelu, przeładuje właściwości w taki sposób, że dopiero getter będzie wykonywał zapytanie do bazy danych i z twojej perspektywy zwróci ci je transparentnie.

0
Rev napisał(a):

Lazy loading w językach obiektowych można realizować właśnie poprzez wirtualne gettry/settery. EF sobie dynamicznie stworzy klasę, która dziedziczy po twoim modelu, przeładuje właściwości w taki sposób, że dopiero getter będzie wykonywał zapytanie do bazy danych i z twojej perspektywy zwróci ci je transparentnie.

To wiem, generalnie działa to bez słówka virtual. A co zmienia dodanie virtual w tym przypadku?

Pozdrawiam,

0

Jesteś pewien, że działa bez virtual?

0

Chyba jednak nie. Znalazłem ciekawą dyskusję:
http://stackoverflow.com/questions/9750425/why-would-i-need-to-use-a-virtual-modifier-in-a-c-sharp-class

Czyli bez tego Entity Framework nie stworzy relacji.

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