Usando connectionstring do web.config no modelo linq to sql
Hoje vou dar uma dica na qual passei muita raiva há muito tempo atrás que é perda da conectividade com a base de dados sempre que se altera o modelo de dados DBML.
Quando se trabalha com uma camada de acesso a dados separada da aplicação web e se cria o arquivo DBML o VS cria um arquivo app.config no qual tem a informação da ligação com a base de dados (ConnectionString).
-
public DBDataContext() :
-
base(global::br.com.idevweb.Properties.Settings.Default.aspfemConnectionString, mappingSource)
-
{
-
OnCreated();
-
}
Dai alterava o valor da propriedade ConnectionString no arquivo app.config, as vezes alterava direto no construtor do arquivo DataContext passando a string que estava no web config:
-
public DBDataContext() :
-
base(System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString, mappingSource)
-
{
-
OnCreated();
-
}
Só que, qualquer alteração feita no modelo DBML, esse construtor volta para a versão padrão citada acima. Então para resolver o problema e não se preocupar mais com qualquer alteração do DBML, crie uma classe partial e adicionando o método OnCreated parcial que é chamado no construtor padrão.
-
public partial class DBDataContext
-
{
-
partial void OnCreated() { Connection.ConnectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString; }
-
}
Espero que seja útil e até a próxima.