views:

87

answers:

2

I have a web application made for several groups of people not connected with each other. Instead of using one database for all of them, I'm thinking about making separate databases.

This will improve the speed of the queries and make me free from checking to what group the user belongs.

But since I'm working with LINQ to SQL, my classes are explicitly connected with the databases, so I will have to make separate DataContexts for all of the databases.

So how can I solve this problem? Or should I just not bother and use one database only?

+2  A: 

If the database schemas are the same simply changing the connection string for each database would suffice. You don't necessarily need to create different contexts.

Your other problems are probably solved by reviewing the existing answers for multi-tenancy Asp.NET MVC questions already on Stack Overflow.

jfar
+1  A: 

"my classes are explicitly connected with the databases"

The key to answering your question rests with what you mean by this. If you've hardcoded your application somehow to rely on one specific database, and all your objects are hardcoded to create their own datacontexts using the same connection string, then you've got a lot of refactoring to do.

If you've centralized your DataContext creation using a Repository Pattern, then it wouldn't be more than a few lines of code to conditionally create a DataContext for one database or the other and pass it to your objects.

So it all comes down to how you implemented your contexts.

womp