none
Entity - Conexão RRS feed

  • Pergunta

  • Boa tarde amigos, estou precisando de uma ajuda.

    Eu fiz um sistema utilizando o Entity Framework, já esta tudo pronto e agora eu vou implantar no meu cliente, mas estou com o seguinte problema, quando eu gerei o modelo e fiz a conexão com o banco, eu utilizei os dados do meu servidor local, agora no meu cliente o servidor tem outro nome, sem ter que recompilar o sistema, como eu faria para que ao executar o sistema a conexao com o banco aponta-se para outro servidor. Em Ado era simples... rs. obrigado.


    Ricardo S. Pulini
    quinta-feira, 24 de fevereiro de 2011 21:00

Todas as Respostas

  • Com EF não muda, se você usa um arquivo de configuração para sua aplicação, você tem string de conexão que foi gerada para seu modelo semelhante a essa:
    <add name="SerasaEntities" connectionString="metadata=res://*/Models.SerasaModel.csdl|res://*/Models.SerasaModel.ssdl|res://*/Models.SerasaModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=SEUSERVIDOR;Initial Catalog=SEUBANCO;User ID=SEUUSUARIO;Password=SUASENHA;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/>
    basta você modificar seu arquivo,  se usa autenticação integrada a string de conexão é diferente.
    sexta-feira, 25 de fevereiro de 2011 14:59
  • Boa tarde amigos, estou precisando de uma ajuda.

    Eu fiz um sistema utilizando o Entity Framework, já esta tudo pronto e agora eu vou implantar no meu cliente, mas estou com o seguinte problema, quando eu gerei o modelo e fiz a conexão com o banco, eu utilizei os dados do meu servidor local, agora no meu cliente o servidor tem outro nome, sem ter que recompilar o sistema, como eu faria para que ao executar o sistema a conexao com o banco aponta-se para outro servidor. Em Ado era simples... rs. obrigado.


    Ricardo S. Pulini

    Ricardo

    Apesar do App.config ser ainda amplamente usado, o maior problema que temos é: se sua aplicação ficará no cliente, vc tem uma brecha de segurança pra qualquer um que entenda um mínimo sobre banco de dados, pois o login E senha de acesso do seu banco estará naquele arquivo.

    Pra evitar isto, tem-se como opção os resource files, que são embutidos no aplicativo e praticamente impossíveis (senão por descompilação) de serem descobertos.

    Existem duas classes que trabalham com Resources, o ResourceReader e Writer. 

    Reader

    http://msdn.microsoft.com/en-us/library/system.resources.resourcereader.aspx

    Writer

    http://msdn.microsoft.com/en-us/library/system.resources.resourcewriter.aspx

    Isso te da muito mais segurança. Vc também poderia criptografar a connection string, guardar o password em algum lugar dentro do código, e ficar fazendo colisão de hashs entre o valor em código e o hash gravado no campo password da connection string do app.config, mas, convenhamos, trabalho desnecessário.

    agora, SE sua aplicação for web, então use o app.config mesmo, pois a não ser que a pessoa invada o servidor, ou consiga burlar o CMS do hoster, ela conseguirá ler o que está escrito nele.

    domingo, 6 de março de 2011 18:29
  • Eduardo, obrigado pela resposta eu entendi como usar as classes.

    Porém o que eu não sei fazer na verdade é o seguinte: Quando o sistema é executado, o entity abre a conexão com o banco de dados utilizando as informações que estão no app.config, lá está salvo o caminho para o banco de dados, agora estou colocando o aplicativo no cliente, e eu preciso que antes dele abrir a conexão com o banco, seja alterado a connection string.

     

    Como fazer isso?

     

    obrigado


    Ricardo S. Pulini
    quarta-feira, 9 de março de 2011 14:32