
Debugging an AutoMapper profile
How to find out what s going wrong when you get an exception from AutoMapper, and it doesn't tell you the problem
A personal Blazor blog.

How to find out what s going wrong when you get an exception from AutoMapper, and it doesn't tell you the problem

A few examples of my rather poor experience with Copilot

Why my uploaded images weren't being displayed in my Blazor app, and how I got around the problem, learning something new along the way.
![Microsoft.EntityFrameworkCore.Model.Validation[10625] The foreign key property 'ShortlistItem.ShortlistId1' was created in shadow state because a conflicting property with the simple name 'ShortlistId' exists in the entity type](/images/25-01-06-shadow2.jpg)
Having struggled with EF Core adding shadow properties for navigation relationships, I finally found out what it's doing and (more importantly) how to fix it.

The Blazor web app template introduced in .NET8 has some excellent features, but also has some subtle gotchas that can cause performance issues if you don't handle them.
This post explains a utility class I wrote that will keep data access to a minimum when dealing with both server and client rendering, as well as caching data between navigations around the client code.

An updated version of my old message broker that allows MVVM-style messaging to be done between Blazor components.
Unlike the previous version, this one is naturally async and thread-safe

I wanted to speed up the performance of a Telerik Blazor grid. This post documents an extension method I wrote to enable this using EF Core. This was at least as fast (if not faster) than the previous method i wrote based on Dapper, and has some significant extra features

Last month, I explained how we had achieved a significant performance improvement by using Dapper to pull the data from the database, rather than using EF Core.
Whilst showing this to a colleague, he reminded me that EF Core has a FromSqlRaw method that does pretty much the same thing. Assuming that EF Core would be slower than Dapper, I didn't give it much thought at the time. However, being a compulsive tinkerer, I decided to take a closer look.
This post explains my findings, and what I did with them