Pergunta

Estou trabalhando em um aplicativo winforms usando LINQ to SQL - e estou construindo o aplicativo usando uma instância do SQL Express em minha estação de trabalho.A instalação final do projeto será em um SQL Server 2005 adequado.

O banco de dados tem o mesmo nome e todas as tabelas são idênticas, mas o nome do host é diferente.

A única maneira que encontrei de fazer meu aplicativo funcionar de uma máquina para outra é reabrir o código no Visual Studio, excluir todos os objetos referentes à instância SQL Express do meu .mdbl, salvar o projeto, conectar-se a o outro servidor, arraste todas as referências de volta e reconstrua o aplicativo para lançamento mais uma vez.

uma resposta aqui sugeriu que é possível simplesmente modificar o arquivo app.config/web.config - o que funcionaria para asp.net, mas este é um aplicativo winforms.Qual é a maneira correta de fazer com que os aplicativos LINQ to SQL usem um novo banco de dados sem precisar reabrir o aplicativo no visual studio?

Foi útil?

Solução

Se entendi seu problema corretamente, basta alterar a string de conexão do banco de dados em seu app.config/web.config.

Editar, pós esclarecimento:Você tem as strings de conexão armazenadas em algum lugar.Eles podem estar no app.config do seu servidor.Ainda assim, você os obtém de algum lugar e esse lugar pode estar em um app.config.Use isso então :)

Outras dicas

Uma boa solução é adicionar outra conexão ao próprio arquivo dbml.Você pode fazer isso clicando com o botão direito no campo da superfície de design e selecionando propriedades.A partir daí, você pode adicionar outra string de conexão.Em vez de deletar tudo e arrastar novamente, basta alterar a string e recompilar.

Mas se você quiser obter algo sofisticado, você pode fazer com que o programa detecte automaticamente se está sendo executado localmente ou não, usando esta função de utilitário interessante: detectar local

E prossiga a partir daí para definir a cadeia de conexão apropriada com base nos resultados.

Uma resposta mais útil ...

app.config termina como appname.exe.config quando foi compilado.

em vez de abrir o Visual Studio e modificar app.config, você pode simplesmente editar o arquivo appname.exe.config e reiniciar o aplicativo.

Acredito que você pode armazenar as informações de conexão em um arquivo app.config e recuperá-las de lá. Aqui é um post sobre como fazer isso com LINQ to SQL.Depois de implantá-lo em um servidor de produção, basta editar o XML para alterar a fonte de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top