2009-09-14 4 views
5

J'utilise LINQ to SQL pour me connecter à la base de données à partir de mon application. Lorsque je change d'environnement de la production à la mise en scène, je peux mettre à jour ma chaîne de connexion dans web.config. Mais il y a une valeur supplémentaire à mettre à jour lorsque l'environnement change. C'est le nom de la base de données. Dans LINQ to fichier SQL Designer, le nom de la base de données est mentionné comme attribut comme-Définition dynamique du nom de la base de données dans LINQ to SQL

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

Comment puis-je récupérer la valeur de nom dynamique provenant d'un fichier de configuration?

Toute aide est vraiment appréciée.

+1

J'ai trouvé enlever l'attribut de base de données du fichier dbml.cs, n'a pas donné d'erreur ou d'exception. Cet attribut n'est donc pas obligatoire, mais ajouté par défaut par le concepteur. –

+0

Pouvez-vous ne pas accepter la réponse acceptée? Ce n'est plus correct. –

Répondre

0

Je l'ai utilisé une classe wrapper pour fournir un contexte le long des lignes de

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

je fixe ce problème en éditant le fichier .dbml en dehors de Visual Studio (le concepteur ne semble pas permettre l'accès au DatabaseAttribute) et de se débarrasser de la propriété du nom ici:

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

(notez que la réponse acceptée n'est plus correct: cet attribut est ma chaîne de raisons impérieuses connexion)

Questions connexes