I am in the process of creating a Multi-Tenant asp.net application.
I am deciding between separate MSSQL databases or schemas.
However, I cannot find any inf
If you have set up multiple database for multiple tenants, you can create connection string based on the tenant.
You can simply add an overload to your db context constructor that accepts connection string as input:
public partial class SampleDbEntities
{
public SampleDbEntities(string connectionString)
: base(connectionString)
{
}
}
Then wherever you need to create an instance of your db context, use this overload and inject suitable username
and password
in the connection string based on your tenant detection strategy.
For example when your connection string looks like this:
var connectionTemplate =
@"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;" +
@"provider=System.Data.SqlClient;" +
@"provider connection string=""data source={0};" +
@"initial catalog={1};" +
@"persist security info=True;" +
@"user id={2};" +
@"password={3};" +
@"MultipleActiveResultSets=True;App=EntityFramework""";
string connection = string.Format(connectionTemplate,
@"(localdb)\v11.0", @"TestDB", @"user1" , @"password1");
var db = new SampleDbEntities(connection);
Note:
web.config
.