ArcGIS might be overkill for what you are looking to do. It is more about working with points stored in a service or feature layer. You can manually add all the points at runtime as a graphics overlay, as you mentioned. This would be the same method used by pretty much any mapping library you'll use (I've used GMaps.NET for this before).
I'm sure you are aware, but here is the tutorial for the graphics overlay: Add a point, line, and polygon | ArcGIS Runtime API for .NET | ArcGIS for Developers
You would just hand your MapViewModel a list of the points & metadata from your database at runtime and loop through, adding one point at a time. Keep in mind this isn't live data - you would refresh this cache through another bulk query & data processing.