1
resposta

Trabalhar com mais de um banco de dados no mesmo projeto

Gostaria de saber se é possível trabalhar com mais de um banco de dados usando Entity Framework no mesmo projeto. Ou seja, eu teria duas "connectionStrings" diferentes (uma para cada banco) e precisaria alternar entre as duas para hora gravar num banco e hora gravar no outro.

É possível? Caso sim, como ficaria o código?

1 resposta

Olá Marcelo, tudo bem?

É possível sim, é só você passar o dataSource e o dbName como parâmetro. Veja se esse código faz sentido:

var conn = GetSqlConn4DbName(dataSource,dbName );
var ctx = new MyDbContext(conn,true);



public DbConnection GetSqlConn4DbName(string dataSource, string dbName) {
        var sqlConnStringBuilder = new SqlConnectionStringBuilder();
        sqlConnStringBuilder.DataSource = String.IsNullOrEmpty(dataSource) ? DefaultDataSource : dataSource;
        sqlConnStringBuilder.IntegratedSecurity = true;
        sqlConnStringBuilder.MultipleActiveResultSets = true;

        var sqlConnFact = new SqlConnectionFactory(sqlConnStringBuilder.ConnectionString);
        var sqlConn = sqlConnFact.CreateConnection(dbName);
        return sqlConn;
    }


 public class ContextInitializerNone<TContext> : IDatabaseInitializer<TContext> where TContext : DbContext
{
    public void InitializeDatabase(TContext context) {  }
}

Qualquer coisa é só falar! Vitor