Meio confuso em trabalhar com dois bancos de dados

19/10/2013

0

Preciso de uma idéia em como fazer. Preciso desenvolver um método para preencher um grid. Até aí, blz. Acontece que nessa grid preciso trazer o nome do cliente e é exatamente aí que reside a complicação. O nome do cliente, está em uma tabela em outro banco que não é o mesmo m que vou buscar os dados do grid. Pensei em criar uma lista com os nomes, mas quando vi a quantidade de nomes(mais de 500.000), aí percebi que não dava para carregar em uma lista. Bem, tive outra idéia, seria fazer um método que trouxesse o nome por ID, isso também se mostrou ineficiente, pois imagine se no grid eu carrego 1.000 linhas, fazer o método ser executado 1000 vezes seria improdutivo também(quebra de performance). Bem, a solução seria o seguinte. Fazer um LINQ passando os ID's no where desse LINQ e atribuir esse nome na minha query que carrega o grid(Outro Banco), é aí então que entra a questão. Não sei fazer isso, tipo assim:

select campo1,campo2,campo3,??????? from tabela1. Bem, onde está ??????? deverá vir o nome do cliente de outro banco na LINQ. Cara, ainda não consegui fazer isso. Essa foi a idéia de meu funcional, mas ele se foi e não consegui. Alguém tem alguma idéia, mesmo que diferente dessa e que dê uma excelente performance? Fazer select, incluindo outro banco no select é inviável no meu contexto, isso já pensei e já descartei. Obrigado.
Pjava

Pjava

Responder

Posts

20/10/2013

Joel Rodrigues

Cara, confesso que nunca testei, mas TALVEZ valha a pena dar uma testada no seguinte: cria uma classe DTO (pesquise sobre esse padrão), em que no constructor você iniciaria o nome, pegando de outro banco, ou no set de alguma propriedade, com o Id.
Responder

12/11/2013

[desativado] Gonçalves

Que banco você está usando? Se for SQL Server, as bases estão no mesmo servidor / instância? Se sim, voce pode usar, por exemplo,

select * from <database>.<schema>.<table>

Assim, consigo fazer join ou usar duas tabelas de bases diferentes na mesma instância do banco.

Caso você esteja trabalhando com instâncias diferentes, você pode criar um LinkedServer entre elas e proceder da mesma maneira assim:

Via ManagementStudio, acesse um dos bancos. Expanda o Servidor e expanda Server Objects. Vai aparecer na lista a opção Linked Servers. Com o clique direito, adicione uma nova ligação. Basta você fazer um select chamando pela ligação como pode ser observado abaixo:

select * from <server>.<database>.<schema>.<table>
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar