Lazy loading in .NET core

Geschreven door: op donderdag 19 januari 2017

Leestijd:

Lazy loading in .NET core

.NET core is de platformonafhankelijke .NET-implementatie van Microsoft. .NET-core-applicatie kunnen bijvoorbeeld worden geactiveerd op Linux-omgevingen, waarvan mogelijke effecten zijn: lagere hostingkosten en vergroten van schaalbaarheid oplossing.

Er zijn echter een aantal belangrijk verschillen, bijvoorbeeld in de structuur van de gegenereerde projecten, of de NuGet-packages die ondersteund worden.

Een van de andere verschillen tussen .NET Framework en .NET Core is dat het laden van gekoppelde database-entiteiten via lazy loadingnog niet ondersteund wordt in .NET core. Een voorbeeld van gekoppelde entiteiten is:


public class BlogPost{

   public virtual ICollection<Comment> Comments {get; set;}

}

Wanneer in .NET Framework een databasecontext geopend is, kan vanuit een blogpost worden naar comments op volgende wijze:


Var blogPost = _context.blogPosts.Find(Id);
Var comments = blogPost.Comments;

Comments bevat nu een collectie met gekoppeld comments. In het geval van .NET Core is comments echter nog steeds null en dat is omdat lazy loading nog niet wordt ondersteund. Om de gekoppelde comments in te laden en te gebruiken, zijn er twee oplossingen:

Via Eager Loading:


var blogPost = _context.blogPosts.Include("Comments").Single(b => b.Id == Id);

Via Explicit Loading:


context.Entry(blogPost).Collection(b => b.Comments).Load();

Of als de koppeling naar een enkele entity is:


context.Entry(blogPost).Reference(b => b.Author).Load();

Op deze manier zorg je ervoor dat gekoppelde entiteiten ingeladen worden en gebruikt kunnen worden in je .NET Core-applicatie.


Op De Hoogte Blijven?

Online Succes realiseren is een vak, een vak wat wij verstaan en waarover we je graag vertellen. Schrijf je in voor onze maandelijkse nieuwsbrief en blijf op de hoogte van trends, thema’s en succesverhalen.

Aanhef

Andere blogartikelen

Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
Aliancys is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Onze Middelen en Technologieën
Microsoft partner
Adobe partner
Asp dotnet
Google analytics
Google adwords
TelefoonE-mail