Question

Je travaille sur une application Winforms utilisant LINQ to SQL et je construis l'application à l'aide d'une instance SQL Express sur mon poste de travail.L'installation finale du projet se fera sur un bon SQL Server 2005.

La base de données porte le même nom et toutes les tables sont identiques mais le nom d'hôte est différent.

La seule façon que j'ai trouvée pour faire fonctionner mon application d'une machine à l'autre est de rouvrir le code dans Visual Studio, de supprimer tous les objets faisant référence à l'instance SQL Express de mon .mdbl, d'enregistrer le projet, de se connecter à sur l'autre serveur, faites glisser toutes les références et reconstruisez l'application pour la publier une fois de plus.

une réponse ici suggère que l'on peut simplement modifier le fichier app.config/web.config - ce qui fonctionnerait pour asp.net, mais il s'agit d'une application winforms.Quelle est la bonne façon de faire en sorte que les applications LINQ to SQL utilisent une nouvelle base de données sans avoir à rouvrir l'application dans Visual Studio ?

Était-ce utile?

La solution

Si je comprends bien votre problème, vous modifiez simplement la chaîne de connexion de la base de données dans votre app.config/web.config.

Modifier, postez une clarification :Vous avez les chaînes de connexion stockées quelque part.Ils peuvent se trouver dans le app.config de votre serveur.Pourtant, vous les obtenez de quelque part et cela quelque part peut être dans un app.config.Utilisez-le alors :)

Autres conseils

Une bonne solution consiste à ajouter une autre connexion au fichier dbml lui-même.Vous pouvez y accéder en cliquant avec le bouton droit sur le champ de l'aire de conception et en sélectionnant les propriétés.À partir de là, vous pouvez ajouter une autre chaîne de connexion.Au lieu de tout supprimer et de redrager, changez simplement la chaîne et recompilez.

Mais si vous voulez faire preuve de fantaisie, vous pouvez demander au programme de détecter automatiquement s'il est exécuté localement ou non, en utilisant cette fonction utilitaire intéressante : détecter local

Et à partir de là, définissez la chaîne de connexion appropriée en fonction des résultats.

Une réponse plus utile...

app.config se termine par appname.exe.config une fois construit.

plutôt que d'ouvrir Visual Studio et de modifier app.config, vous pouvez simplement modifier le fichier appname.exe.config et redémarrer l'application.

Je pense que vous pouvez stocker les informations de connexion dans un fichier app.config et les récupérer à partir de là. Ici est un article sur la façon de faire cela avec LINQ to SQL.Une fois que vous l'avez déployé sur un serveur de production, vous pouvez simplement modifier le XML pour changer la source de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top