Thanks Walaa.
I guess my question is really, why is the convention that you HAVE to add a catalog overwrites when you have multiple databases?
I'm guessing for historical reasons and backwards compatibility.
It would make more sense to use the .NET Core convention with connection strings in different appsettings.EnvironmentName.json.
Right now, it's easy for new developers to forget to add a catalog overwrite in all scenarios (unit tests, staging, production) - because you trust the catalog name in the connection string - with potentially serious consequences.
Have you considered a project setting that lets you disable hard coding the catalog name? This would solve my problems, unless it would break something else?