2008-09-08 7 views
1

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 serveur SQL Server 2005.Déploiement d'un projet à l'aide de LINQ to SQL

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, supprimer tous les objets se référant à l'instance SQL Express de mon .mdbl, enregistrer le projet, connectez-vous à l'autre serveur, faites de nouveau glisser toutes les références et reconstruisez l'application pour la publication une fois de plus.

une réponse ici suggéré que l'on peut simplement modifier le fichier app.config/web.config - qui fonctionnerait pour asp.net, mais c'est une application winforms. Quelle est la bonne façon de faire des applications LINQ to SQL utiliser une nouvelle base de données sans avoir à ré-ouvrir l'application dans Visual Studio?

Répondre

1

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.

Édition, post-clarification: les chaînes de connexion sont stockées quelque part. Ils peuvent être dans l'app.config de votre serveur. Pourtant, vous les obtenez quelque part et quelque part peut-être dans un app.config. Utilisez cela alors :)

0

Je crois que vous pouvez stocker les informations de connexion dans un fichier app.config et le récupérer à partir de là. Here est un article sur ce sujet avec LINQ to SQL. Une fois que vous l'avez déployé sur un serveur de production, vous pouvez simplement modifier le code XML pour modifier la source de données.

1

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 de la souris sur le champ de la surface de conception et en sélectionnant les propriétés. De là, vous pouvez ajouter une autre chaîne de connexion. Au lieu de tout supprimer et de redommander, changez simplement la chaîne et recompilez.

Mais si vous voulez obtenir la fantaisie-schmancy, vous pouvez avoir le programme d'auto-détecter si elle est exécutée localement ou non, en utilisant cette fonction d'utilité propre: detect local

Et à partir de là pour régler le approprié chaîne de connexion basée sur les résultats.

1

Une réponse plus utile ...

app.config finit comme appname.exe.config quand il a été construit. Au lieu d'ouvrir Visual Studio et de modifier app.config, vous pouvez simplement modifier le fichier appname.exe.config et redémarrer l'application.