Usuário com melhor resposta
Erro ao mudar a connection string no entity

Pergunta
-
Quando crio um modelo e seto uma conexão pelo wizard, tudo funciona 100%.
porem se eu mudar a string conncetion da erro.
string conStringA = string.Format("metadata=res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl;provider=Oracle.DataAccess.Client;provider connection string=\"DATA SOURCE={1};PASSWORD={2};USER ID={3}\"", "ModelTeste", "server1/orcl", "ABC", "123");
string conStringB = string.Format("metadata=res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl;provider=Oracle.DataAccess.Client;provider connection string=\"DATA SOURCE={1};PASSWORD={2};USER ID={3}\"", "ModelTeste", "server2/orcl", "ABC", "123");
Type contextType = typeof(EntitiesTeste);
object objContext = Activator.CreateInstance(contextType, conStringB);using (EntitiesTeste ContextoPaciente = new EntitiesTeste(connStrBuild.ToString()))
{
List<PACIENTE> Pacientes_lista = new List<PACIENTE>();
ObjectQuery<PACIENTE> Pacientes_consulta = ContextoPaciente.PACIENTE;
var query = from pacientes in Pacientes_consulta
//where pacientes.RESOURCECOD == 1
select new { pacientes };
}Enquanto eu estiver usando a conStringA que é exatamente igual a que foi gerada pelo wizardi tudo funciona. Porem quando altero para conStringB
Acontece o erro. Nos dois servidodes tem exatamente o mesma base de dados e estou utilizando Oracle.
desde já agradeço
- Editado Edson Fiorese quarta-feira, 7 de março de 2012 17:01
Respostas
-
Olá Fernando!
Já tinha lido e tentando isso porem não funcionou, depois de tanto ler, de tanto procurar soluções comecei a testar algumas coisas de metido e sem querer acabei descobrindo no arquivo .edmx uma propriedade Schema
<EntityContainer Name="Model1StoreContainer">
<EntitySet Name="tabela" EntityType="Model1.Store.tabela" store:Type="Tables" Schema="SERVER1" />Ao remover esta propriedade do arquivo funciona a mudança de connection String;
Infelizmente não tenho nenhuma referencia para linkar.
Muito obrigado pela atenção
- Marcado como Resposta Edson Fiorese quarta-feira, 7 de março de 2012 19:16
Todas as Respostas
-
Olá Edson,
as duas connections strings me parecem iguais.
Onde esta a diferença entre as duas?
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique -
-
Olá Edson,
Qual a mensagem de erro que é disparada quando vc tenta conectar
?
Vc pode mudar sua connection string utilizando um SqlConnectionStringBuilder, acho que é mais fácil e garantido (segue exemplo)
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); sqlBuilder.DataSource = @"Server1\MySERVER"; sqlBuilder.InitialCatalog = "MyNewDatabase"; sqlBuilder.IntegratedSecurity = true; sqlBuilder.MultipleActiveResultSets = true; EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); entityBuilder.Provider = "System.Data.SqlClient"; entityBuilder.ProviderConnectionString = sqlBuilder.ToString(); entityBuilder.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl"; EntityConnection conn = new EntityConnection(entityBuilder.ToString()); MyNewDatabaseEntities context = new MyNewDatabaseEntities(conn);
Ou, vc pode ter duas strings de conexão no seu arquivo de configuração e mudar o alias quando vc criar seu datacontext.
[]s!
Referências:
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique- Sugerido como Resposta AndreAlvesLimaModerator quarta-feira, 7 de março de 2012 18:55
-
Olá Fernando!
Já tinha lido e tentando isso porem não funcionou, depois de tanto ler, de tanto procurar soluções comecei a testar algumas coisas de metido e sem querer acabei descobrindo no arquivo .edmx uma propriedade Schema
<EntityContainer Name="Model1StoreContainer">
<EntitySet Name="tabela" EntityType="Model1.Store.tabela" store:Type="Tables" Schema="SERVER1" />Ao remover esta propriedade do arquivo funciona a mudança de connection String;
Infelizmente não tenho nenhuma referencia para linkar.
Muito obrigado pela atenção
- Marcado como Resposta Edson Fiorese quarta-feira, 7 de março de 2012 19:16
-
Entendi,
Seu modelo estava apontando para o Schema.
Bele! :)
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique