none
Entity Framework Connection String RRS feed

  • Pergunta

  • Olá pessoal

    estou com uma duvida

    eu tenho meu banco de dados mapeiado pelo ORM entity framework

    la eu tenho em um banco uma conectionString que nela tem por exemplo uma tabela usuarios

     

    mas em um determinado momento eu precisaria so mudar a connectionString para que apontasse para outro banco

    que tb tem a tabela usuarios so que com dados diferentes,

     

    como eu posso fazer isso usando Entity Framework

    mudar connectionstring para apontar para outro banco igual?

    segunda-feira, 21 de junho de 2010 11:45

Respostas

  • Digamos que vc tenha essa connection tring

    <add name="MSNDEntities"
    connectionString="metadata=.\MSND.csdl|.\MSND.ssdl|.\MSND.msl;provider=System.Data.SqlClient;provider connection string='Data Source=localhost;Initial Catalog=MSNDDataBase;User Id=MSNAdmin;Password=123456;'"
    providerName="System.Data.EntityClient" />

    O ideal é usar o EntityConnectinStringBuilder:

    using System.Data.EntityClient;

    E depois montar a string:

    EntityConnectionStringBuilder connStrBuild = new EntityConnectionStringBuilder();
    connStrBuild.Metadata = @"res://*/MSDN.csdl|res://*/MSDN.ssdl|res://*/MSDN.msl";
    connStrBuild.Provider = "System.Data.SqlClient";
    connStrBuild.ProviderConnectionString = "Data Source=localhost;Initial Catalog=MSNDDataBase;User Id=MSNAdmin;Password=123456;";
    EntitiesContainer _db = new EntitiesContainer(connStrBuild.ToString());
    //Pronto para usar ;D

    É isso ai :D

    Qualquer aprofundamento pode ver esse link: http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder.aspx

     


     

    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.spaces.live.com/

    • Sugerido como Resposta Alberto Monteiro terça-feira, 22 de junho de 2010 17:13
    • Marcado como Resposta michieru quarta-feira, 23 de junho de 2010 12:03
    terça-feira, 22 de junho de 2010 17:11

Todas as Respostas

  • na instancia do seu container de dados vc pode acessar a propriedade Connection, e nela vc muda a connection string.

     

    EntitiesContainer _db = new EntitiesContainer();
    _db.Connection.ConnectionString = "nova";


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.spaces.live.com/

    segunda-feira, 21 de junho de 2010 19:26
  • Opa eu vi ate deu certo

    mas não como fica a estrutura da connection string

    vc poderia me da um exemplo?

    terça-feira, 22 de junho de 2010 12:44
  • Digamos que vc tenha essa connection tring

    <add name="MSNDEntities"
    connectionString="metadata=.\MSND.csdl|.\MSND.ssdl|.\MSND.msl;provider=System.Data.SqlClient;provider connection string='Data Source=localhost;Initial Catalog=MSNDDataBase;User Id=MSNAdmin;Password=123456;'"
    providerName="System.Data.EntityClient" />

    O ideal é usar o EntityConnectinStringBuilder:

    using System.Data.EntityClient;

    E depois montar a string:

    EntityConnectionStringBuilder connStrBuild = new EntityConnectionStringBuilder();
    connStrBuild.Metadata = @"res://*/MSDN.csdl|res://*/MSDN.ssdl|res://*/MSDN.msl";
    connStrBuild.Provider = "System.Data.SqlClient";
    connStrBuild.ProviderConnectionString = "Data Source=localhost;Initial Catalog=MSNDDataBase;User Id=MSNAdmin;Password=123456;";
    EntitiesContainer _db = new EntitiesContainer(connStrBuild.ToString());
    //Pronto para usar ;D

    É isso ai :D

    Qualquer aprofundamento pode ver esse link: http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnectionstringbuilder.aspx

     


     

    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.spaces.live.com/

    • Sugerido como Resposta Alberto Monteiro terça-feira, 22 de junho de 2010 17:13
    • Marcado como Resposta michieru quarta-feira, 23 de junho de 2010 12:03
    terça-feira, 22 de junho de 2010 17:11
  • Muito obrigado é isso mesmo

    eu estava tendo um problema na construção quando eu convertia para string uma barra invertida era criada "\" e dava erro

    outra maneira mais dinamica de construir essa connection é:

     

    Visando que vc pode ter um cenário onde o usuario pode especificar os parametros da connection string na aplicação

    assim podemos criar um metodo para isso

     

     

    public EntityConnectionStringBuilder ConnectionConstruct()
      {
       // Specify the provider name, server and database.
    
       string providerName = "System.Data.SqlClient";
       string serverName = "host";
       string databaseName = "databasename";
       string userId = "user";
       string password = "senha";
    
       // Initialize the connection string builder for the
       // underlying provider.
       SqlConnectionStringBuilder sqlBuilder =
        new SqlConnectionStringBuilder();
    
       // Set the properties for the data source.
       sqlBuilder.DataSource = serverName;
       sqlBuilder.InitialCatalog = databaseName;
       //sqlBuilder.IntegratedSecurity = true;
       sqlBuilder.UserID = userId;
       sqlBuilder.Password = password;
       
       
       // Build the SqlConnection connection string.
       string providerString = sqlBuilder.ToString();
    
       // Initialize the EntityConnectionStringBuilder.
       EntityConnectionStringBuilder entityBuilder =
        new EntityConnectionStringBuilder();
    
       // Set the Metadata location.
       entityBuilder.Metadata = @"res://*/Models.Msdn.csdl|res://*/Models.Msdn.ssdl|res://*/Models.Msdn.msl";
    
       //Set the provider name.
       entityBuilder.Provider = providerName;
       
       // Set the provider-specific connection string.
       entityBuilder.ProviderConnectionString = providerString;
    
       
       
       return entityBuilder;
       
      }

    Dai o retorno é so vc converte para string, e tb se quiser os parametros como nome , senha e o resto vc pode fazer com que este metodo receba esses parametros.

     

    quarta-feira, 23 de junho de 2010 12:10