I've got to implement a system where there are several (no fixed limit) databases or schemas with identical tables structures for a [multitenancy](http://en.wikipedia.org/wiki/Multitenancy) system.

For each request, some sort of database/schema ID (like a tenant ID) is provided.
What I'd like to do is to select the database or schema based on that ID and tell my entity framework model (code first) to target that particular database/schema.
Then the system, a WCF service, will do a few queries and wait for the next call, targeting (likely) another database/schema.
Naturally, several requests may be executed at the same time in different threads, accessing different databases/schemata using entity objects.

I'm using SQL Server and the number of tenants will likely be between about 5 and 50.

Is there a way to achieve this?

Btw, is there a difference in SQL Server between schema and database? I know there is with oracle but I'm pretty new to SQL Server and don't fully understand all the microsoft terminology yet.

Lots of Greetings!
Volker