Dynamiczny ciąg połączenia EF6 DBContext
public partial class ProcessContext : DbContext
{
static ProcessContext()
{
Database.SetInitializer<ProcessContext>(null);
}
public ProcessContext()
: base("Name=ProcessCS") //Comes from Config File
{
}
--DBSets
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
--Code
}
}
Jest to DB Multi Tenent, w którym mamy 3 różne DB. Scentralizowany DB znajduje się we wspólnej lokalizacji i nie zostałby zmieniony. Tutaj będą przechowywane pozostałe szczegóły bazy danych. Muszę utworzyć ciąg połączenia @ runtime, w którym szczegóły będą pochodzić z tego scentralizowanego DB. Czy ktoś może mi powiedzieć, jak się do tego zabrać?
Próbowałem z następującym kodem, ale nie działa. Ta metoda zostanie tu nazwana
public ProcessContext()
: base(nameOrConnectionString: ConnectionString())
{
}
private static string ConnectionString()
{
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = "XXX";
sqlBuilder.InitialCatalog = "YYY";
sqlBuilder.PersistSecurityInfo = true;
sqlBuilder.IntegratedSecurity = true;
sqlBuilder.MultipleActiveResultSets = true;
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
entityBuilder.Metadata = "res://*/";
entityBuilder.Provider = "System.Data.SqlClient";
return entityBuilder.ToString();
}