9
votes

Gestion des chaînes de connexion de différents développeurs sous Linq à SQL

Avec ma source de subversion, j'ai des problèmes lorsque 2 ordinateurs différents ont des chaînes de connexion différentes.

Le concepteur LINQ to SQL semble seulement aimer avoir la même chaîne de connexion.

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?


0 commentaires

3 Réponses :


5
votes

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.

Nous travaillons donc autour de la question:

  1. Nous ne sauves jamais nos mots de passe de développement
  2. Nous n'utilisons jamais la chaîne de connexion par défaut dans le code lors de la nouvelle version de DataContext
  3. Nous pouvons donc "en toute sécurité" ignorer les chaînes de connexion multiples lors des sprints qui touchent la couche de données
  4. Lorsque les choses meurent / deviennent plus stables, nous supprimons les chaînes de connexion du contexte de données, en utilisant des propriétés de la surface de concepteur elle-même ou en modifiant le XML. À ce stade, il appartient au modificateur du contexte de données à suivre pour supprimer les chaînes de connexion par défaut.

    Hélas, ce n'est pas une situation idéale. Espérons que VS2010 «fixera» ce problème.


3 commentaires

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. = |



1
votes

J'ai couru dans ce problème et j'ai trouvé votre question. Voici la solution que nous utilisons maintenant:

  1. 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>

  2. 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())
        {
        }
    }
    


2 commentaires

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 et axé .DBML's "propriétés" du panneau "Propriétés" Vous devez développer "Connexion" puis définissez "Paramètres d'application" à faux . 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.



1
votes

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. xxx


0 commentaires