Dynamisch LINQ queries maken met Lambda expressies

In de data access laag van m’n projecten werd het nu toch wel een drukke boel met verschillende LINQ to SQL queries. Aangezien je namelijk niet goed dynamische LINQ-queries kunt maken, moet je eigenlijk voor iedere ‘uitzondering’ een aparte query maken. Je krijgt dan zoiets als dit: if (criteria.PeriodeVan != null && criteria.PeriodeTot != null) { var query = (from post in dataContext.GetTable() where post.Item.CreatieDD >= criteria.PeriodeVan && post.Item.CreatieDD <= criteria. Read more →

LINQ performance testen

Vandaag ben ik veel interessante artikelen tegen gekomen op het internet. Een daarvan is een LINQ to SQL performance test. Blijkbaar had Derik Whittaker wat tijd over en heeft een performance test gedaan met verschillende manieren van de data-access op te bouwen. Het volledige artikel is op z’n weblog te lezen: https://devlicio.us/blogs/derik_whittaker/archive/2008/03/14/playing-with-linq2sql-and-various-performance-tests.aspx Z’n conclusie is dat wanneer je een generieke DataContext gebruikt in je code, je enorm veel performance verlies hebt. Read more →

LINQpad

Vandaag kwam ik een website met een vette applicatie tegen, namelijk LINQpad. Zoals de naam misschien wel doet vermoeden, kun je met deze ‘pad’ zelf LINQ queries maken en uitvoeren. Deze applicatie ondersteunt LINQ to SQL, LINQ to XML en LINQ to Objects. Door het uitvoeren van verschillende queries (op je eigen data) kijken of het resultaat dat je krijgt gewenst is. Zo kun je dus mooi oefenen om de LINQ-syntax te beheersen. Read more →

Richtlijnen voor het gebruik van LINQ

Afgelopen week kwam ik in m’n RSS-feeds een mooi artikel tegen met daarin enkele richtlijnen hoe en wanneer je LINQ kunt gebruiken. Om eerlijk te zijn heb ik het alleen maar even snel door gescanned, omdat ik nogal druk ben de laatste tijd, maar het lijkt me een interessant stukje om te lezen. De link van het artikel is https://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx. Zodra ik zelf tijd heb zal ik het ook doorlezen, maar dat zit er vandaag waarschijnlijk niet meer in. Read more →

Direct LINQ queries uitvoeren

Onlangs heb ik iets ‘uitgevonden’ bij het maken van LINQ-queries. Deze queries worden namelijk uitgevoerd zodra je een item zoekt in de verzameling van objecten, dus eigenlijk pas in een foreach-loop. Ik had een ‘kleine’ fout gemaakt tijdens het ontwikkelen van dit weblog, waardoor het voor kon komen dat de database meer dan 7000x in een kwartier kon worden aangeroepen als er 2 gebruikers 20 pagina’s bekeken. Dat is natuurlijk niet echt bevorderlijk voor de performance, waardoor je soms wel tussen de 10 en 30 seconden moest wachten voordat er een pagina zichtbaar was. Read more →