Avec ma source de subversion, j'ai des problèmes lorsque 2 ordinateurs différents ont des chaînes de connexion différentes. P>
Le concepteur LINQ to SQL semble seulement aimer avoir la même chaîne de connexion. P>
est-il possible que le concepteur utilise une chaîne de connexion qui varie depuis que les développeurs ont des configurations locales différentes, mais l'utilisation réelle dans l'application Web tire depuis le web.config? P>
3 Réponses :
Malheureusement, il s'agit d'une grande source de douleur avec le concepteur Linq à SQL. Je ne connais pas d'une façon de forcer le studio visuel à ne jamais ajouter une chaîne de connexion par défaut lorsque vous faites glisser des tables ou des procédures stockées sur la surface de conception. p>
Nous travaillons donc autour de la question: p>
Hélas, ce n'est pas une situation idéale. Espérons que VS2010 «fixera» ce problème. p>
VS2010 Beta 2 n'a pas corrigé cela.
Il semble que VS2013 ne l'a pas été fixe non plus.
Il semble que vs2019 n'a pas été corrigé non plus. = |
J'ai couru dans ce problème et j'ai trouvé votre question. Voici la solution que nous utilisons maintenant:
Utilisez une classe de configuration centralisée pour récupérer les valeurs de configuration à partir d'un emplacement particulier du système de fichiers. Cela permet à chaque machine où le code est exécuté pour utiliser ses propres valeurs de configuration. P> li>
Créez une classe partielle pour le contexte de données LINQ vers SQL. Ajoutez un constructeur personnalisé qui ne prend aucun paramètre et récupère la chaîne de connexion de base de données de la classe de configuration décrite ci-dessus. P> LI> ol>
Par exemple: P>
public partial class MyCustomDBDataContext
{
public MyCustomDBDataContext() :
base(Configuration.GetDatabaseConnectionString())
{
}
}
Il suffit d'essayer de mettre en œuvre cela pour mon projet, mais je reçois l'erreur "définit déjà une méthode de ..." car il dispose désormais de 2 déclarations du constructeur par défaut.
Je sais que c'est un ancien commentaire mais quoi que ce soit ... d'un Ouvrir i> et axé i> .DBML's "propriétés" du panneau "Propriétés" Vous devez développer "Connexion" puis définissez "Paramètres d'application" à faux code>. Cela supprimera le constructeur sans paramètre de la conception de DBML.CS, ce qui signifie que votre constructeur dans la classe partielle n'émettra plus d'erreur "déjà définie". L'un des inconvénients est que si vous supprimez / ajoutez une table à la DBML, elle réinitialisera la chaîne de connexion et définissez le réglage de l'application sur TRUE. Oui, c'est très gênant.
en suivant les directives sur Comment est-ce que je? Changer la chaîne de connexion de DataContext Constructeur par défaut à partir de web.config Mon application utilise maintenant différentes connexions en fonction de si httpcontext.current.Request est local ou non.