Pergunta

Eu estou usando LINQ to SQL para se conectar ao banco de dados do meu aplicativo. Quando eu estou mudando o ambiente de produção para encenação, eu posso atualizar meu seqüência de conexão no web.config. Mas há mais um valor eu preciso atualizar quando mudanças no ambiente. Esse é o nome do banco de dados. Em LINQ to SQL arquivo de designer, o nome do banco de dados é mencionado como atributo como -

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]

Como posso pegar valor de Name dinamicamente a partir de algum arquivo de configuração?

Qualquer ajuda é muito apreciada.

Foi útil?

Solução

como mencionado no http://msdn.microsoft. com / en-us / library / system.data.linq.mapping.databaseattribute.name.aspx

"O DatabaseName é usado somente se a própria conexão não especificar o nome do banco de dados." assim você pode excluir este atributo e tudo vai funcionar bem!

Outras dicas

Eu usei uma classe wrapper para fornecer um contexto ao longo das linhas

public DataContext Context = new DataContext(SqlConnectionString); //much simplified

Eu fixo este problema editando o arquivo fora .dbml de Visual Studio (o designer não parece permitir o acesso ao DatabaseAttribute) e se livrar da propriedade name aqui:

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">

(note que a resposta aceite não é mais correto: este atributo foi substituindo a minha string de conexão)

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