Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pcclrocks

[Resolvido] Linq + connection string em console application

Recommended Posts

ola a todos.

estou a desenvolver uma console application cujo objectivo e efectuar operações em bases de dados remotas. Por remotas entenda-se alojadas no servidor da empresa e não na minha máquina.

Eu tenho um dataset, que me dá o ID, uma connection string , e o nome da empresa que usa essa base de dados. Ao todo são 10 linhas, cada uma com uma connection string diferente. Quero fazer operações apenas em uma tabela, que existe em 10 bases de dados de nome diferente, mas com estrutura igual.

 

A partir daqui eu tenho de fazer um ciclo que corra uma base de dados de cada vez e efectue as operações que eu quero. Ou seja, uso uma connection string de cada vez para aceder á base de dados pretendida.

 

Aqui começa o meu problema.

Eu consigo fazer isto com um store procedure mas pediram me para investigar se era possivel com o Linq, coisa nova para mim que sou estagiário.

É possivel usar o Linq apenas tendo a connection string?

 

Será que tenho, através do database explorer de arrastar a tabela que quero? Funcionará com tantas bases de dados?

 

Gostava que me dessem uma orientação.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria um arquivo de *.dbml para cada base de dados...

 

Cada arquivo dbml aceita apenas uma Connection String..

 

Fiz algo parecido aqui, só que uso webservice, que me dá a resposta se executou ou não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria um arquivo de *.dbml para cada base de dados...

 

Cada arquivo dbml aceita apenas uma Connection String..

 

Fiz algo parecido aqui, só que uso webservice, que me dá a resposta se executou ou não...

 

Mas se vou criar um *.dbml para cada base de dados, para que vai servir a connection string depois?

Pelo que percebi, tenho manualmente de ligar o database explorer ás bases de dados e a partir dai criar os *.dbml. Isso já fiz.

Mas como vou conciliar a connection string e o ficheiro *dbml correcto?

Alguma ideia? Ou o meu conceito está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria um arquivo de *.dbml para cada base de dados...

 

Cada arquivo dbml aceita apenas uma Connection String..

 

Fiz algo parecido aqui, só que uso webservice, que me dá a resposta se executou ou não...

 

estou aqui a fazer e a descobrir, este tópico tem sido muito útil.

o cenário alterou-se ligeiramente.

em vez de estar a criar manualmente os ficheiros *.dbml eu quero saber se existe forma de criar estes ficheiros dinamicamente.

passo a explicar: até agora eu criei os *.dbml á mão, arrastando as tabelas do database explorer, mas no futuro pode ser que seja alterado o número de bases de dados a usar, logo teria de fazer alterações no projeto.

 

A ideia agora é, como isto tudo parte de um dataset com algumas connections strings e no futuro haverá alterações de dados neste dataset, quero saber se existe alguma forma de criar os ficheiros *.dbml dinamicamente.

Ou seja, com a primeira connection string vamos criar o ficheiro *.dbml e fazer as operações. Concluidas as operações, o ficheiro *.dbml é descartado e passamos para a segunda connection string onde é criado um novo *.dbml, e por ai fora.

Espero ter me explicado bem.

Estou a pesquisar a ver se é possivel, se for ponho aqui a solução.

Se alguem me pode indicar algo, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola novamente.

estive a pesquisar e acho que encontrei uma solução.

como o ficheiro *.dbml terá uma estrutura igual para todas as bases de dados a que me ligar, pode ser que baste alterar a connection string.

tive esta ideia depois de ler este artigo:

 

Clique aqui

 

aqui fala como trocar a connection string de um *.dbml.

pode ser que funcione comigo.

vou criar um novo *.dbml, fazer as alterações indicadas no artigo e depois, usando as connection strings do meu dataset vou alterar a connection string no ficheiro 'Settings'. (isto se ele deixar alterar a connection, espero que deixe...)

 

parece-vos bem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas se a estrutura é a mesma com certeza basta somente trocar a connectionstring. Pensei que estava falando de bancos distintos, ae compensava ter mais de um dbml. Entendi que você queria fazer alterações no dbml em runtime quando alterasse a estrutura do banco.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo Quintelab.

O meu problema agora é alterar a connection string no datacontext.

Já progredi muito nesta minha primeira investigação de Linq, está a dar frutos.

Prometo postar aqui a minha solução detalhada no fim, pode ser que ajude alguem no futuro...

 

Como faço para trocar a connection string para uma passada como parâmetro?

Neste momento estou a usar a que está no app.config, mas eu quero usar outra passada como parâmetro(vamos chamar-lhe cString).

 

public partial class LinqDatabaseDataContext
    {
       
        public LinqDatabaseDataContext() : base ( ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)

            {

                OnCreated();   

            }

    }
O meu codigo está assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo Quintelab.

O meu problema agora é alterar a connection string no datacontext.

Já progredi muito nesta minha primeira investigação de Linq, está a dar frutos.

Prometo postar aqui a minha solução detalhada no fim, pode ser que ajude alguem no futuro...

 

Como faço para trocar a connection string para uma passada como parâmetro?

Neste momento estou a usar a que está no app.config, mas eu quero usar outra passada como parâmetro(vamos chamar-lhe cString).

 

 

ignorem o codigo que vos mostro em cima. ele foi eliminado.

eu estou a chamar o datacontext passando como parametro a connection string, mas dá erro e ligar á base de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no designer.cs do meu dbml está assim:

 

public DataClasses1DataContext(string connection) : 
                                base(connection, mappingSource)
                {
                        OnCreated();
                }

A connection ja vai correta (tem a ligação que pretendo), mas acho que tá algo de errado com o mappingSource

Aqui fica uma imagem onde mostra a exception.

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido!!!

estava a usar windows authentication em vez de usar sql authentication na connection string...

esta era básica e fez me perder tanto tempo...

O meu problema está resolvido.

Quando chegar a casa faço um novo post para falar melhor sobre o que fiz, para que fiquem com a ideia geral.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.