When you create your DB Context;
using (db = new MyContext())
{
var data = db.SomeTable.FirstOrDefault(x => x.ID = 1234);
}
You can pass the connection string as a param
string connName = "Customer-related connection name here";
using (db = new MyContext(connName))
{
var data = db.SomeTable.FirstOrDefault(x => x.ID = 1234);
}
That will let different users use different databases. Your system is still quite fragile though, it relies on heavy assumptions that all databases are exactly the same.