The most common reason are missing VistaDB assemblies that are readily available on a computer where VistaDB has been installed but were not distributed with the application. To avoid this problem, use the NuGet packages provided in the installation for the various VistaDB libraries your application needs and consult Deploying VistaDB with your Application for details on what assemblies have to be deployed with your application.
You should always trap errors around attempts to load the database. The common errors would be that the database is in use in a way that's incompatible with the open mode that is being requested, file permissions are blocking access to the file, or the file is marked read-only at the file system. Encrypted databases will also throw exceptions for a bad or missing encryption key.
See the topic on runtime Entity Framework distribution. Applications built using EF need to use an app.config to tell the Entity Framework where to find the provider factory.