Because you use
ServerPrerendered
the page is load twice.
Explained at
ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 9:
Static Statically render the component with the specified parameters.
Server Render a marker where the component should be rendered interactively by the Blazor Server app.
ServerPrerendered Statically prerender the component along with a marker to indicate the component should later be rendered interactively by the Blazor Server app.
The main problem with ServerPrerendered is that it loads twice ,so your data layer code is also executed twice. Server mode is just ok, may be a bit slower.