none
Mudar a conexao com o banco usando ADO.Entity Data Model RRS feed

  • Pergunta

  • Exemplo tenho uma webaplicação e na mesma inclui um ADO.NET Entity Data Model pegando minhas 10 tabelas de um banco de dados sql server 2008 atraves de uma conexao padrao, vamos dizer que em um certo form gostaria de mudar essa conexao padrao para um outro banco em um outro servidor, como faria isso em tempo de execução, via programação. Assim essa webaplicação seria para um cliente X usando um banco X ai em certo momento mudaria essa webaplicação para acessar outro banco Y.

    André Sombra

    quinta-feira, 16 de agosto de 2012 18:58

Todas as Respostas

  • Andre o seu ObjectContext possui um construtor padrão que você pode passar qual ConnectionString você quer utilizar, vamos supor que sua aplicação tenho dois banco de dados com as estrutura identicas, um do Brasil e outro da Jamaica. Em algum lugar da sua aplicação o usuário vai escolher qual pais ele quer ver os dados, só você fazer sua lógica para isso, depois só usar do contrustor do seu ObjectContext:

    string countyAplicacao = "Brasil";
    
    string nameConnection = string.Format("name={0}", countyAplicacao == "Brasil" ? "AdventureWorksEntitiesBrasil" : "AdventureWorksEntitiesJamaica");
    
    SeuObjectContext context = new SeuObjectContext(nameConnection);
    
    // Set the DefaultContainerName for the ObjectContext. 
    // When DefaultContainerName is set, the Entity Framework only 
    // searches for the type in the specified container.  
    // Note that if a type is defined only once in the metadata workspace 
    // you do not have to set the DefaultContainerName.
    context.DefaultContainerName = "AdventureWorksEntities";
    
    ObjectSet<Product> query = context.CreateObjectSet<Product>();
    
    // Iterate through the collection of Products. 
    foreach (Product result in query)
        Console.WriteLine("Product Name: {0}", result.Name);

    Referencia:
    http://msdn.microsoft.com/en-us/library/bb739017.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Sugerido como Resposta Vitor Mendes quarta-feira, 26 de setembro de 2012 00:25
    sexta-feira, 17 de agosto de 2012 19:50