pcclrocks 0 Denunciar post Postado Outubro 4, 2010 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
Daniel LM Costa 2 Denunciar post Postado Outubro 4, 2010 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
pcclrocks 0 Denunciar post Postado Outubro 6, 2010 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
quintelab 91 Denunciar post Postado Outubro 6, 2010 É na connectionstring que fica a referência de onde gravar, buscar as informações. O dbml se referencia através dela. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
pcclrocks 0 Denunciar post Postado Outubro 6, 2010 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
quintelab 91 Denunciar post Postado Outubro 7, 2010 Nunca vi nada do tipo, não vou dizer que é impossível, mas acho pouco viável, sempre que há alterações na base, basta atualizar o dbml manualmente. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
pcclrocks 0 Denunciar post Postado Outubro 7, 2010 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
quintelab 91 Denunciar post Postado Outubro 8, 2010 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
pcclrocks 0 Denunciar post Postado Outubro 8, 2010 É 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
pcclrocks 0 Denunciar post Postado Outubro 8, 2010 É 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
pcclrocks 0 Denunciar post Postado Outubro 8, 2010 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. Compartilhar este post Link para o post Compartilhar em outros sites
pcclrocks 0 Denunciar post Postado Outubro 8, 2010 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