2017-05-31 3 views
0

Je construis une page LINQ to SQL comme une expérience. J'appelle des procédures stockées via Linq-to-SQL. Le fichier designer.cs qui est créé utilise la mauvaise DataSource et une chaîne de connexion. Je ne vois aucun endroit pour définir ces valeurs par défaut.Changement par défaut DataSource et ConnectionString dans LINQ to SQL

En ce moment je fais quelque chose de stupide - je vais et modifier manuellement ces deux lignes à chaque fois que je modifie le fichier .dbml.

Je pensais que, peut-être, que je pouvais faire quelque chose comme ceci:

using (TEMPDataContext dbContext = new TEMPDataContext("MyConnectionString")) 
{ 
    .... 
} 

Mais cela ne fonctionne pas.

Aussi, je me demande de cette ligne à partir du fichier designer.cs:

[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="DataSource")] 

La base de données est fournie dans la chaîne de connexion, pourquoi cela est nécessaire?

Répondre

0

Lorsque vous créez votre fichier .dbml, vous devriez avoir à entrer les informations de chaîne de connexion, puis il ajoutera automatiquement la chaîne de connexion à votre configuration Web. Si cela a en quelque sorte foiré puis juste laisser tomber et recréer le fichier .dbml. Si pour une raison quelconque, vous ne pouvez pas supprimer et recréer puis déterminer la chaîne de connexion qu'il utilise et le modifier ou créer une autre chaîne de connexion, puis rechercher et remplacer sur l'autre chaîne de connexion votre nouvelle chaîne de connexion .

0

Ah ... je savoir comment faire cela d'une manière non-stupide. Il y avait en fait un sujet pour expliquer cela, mais je mal lu:

private string connectionString = 
System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 

. 
. 
. 
using (TEMPDataContext dbContext = new TEMPDataContext(connectionString)) 
{ 
    .... 
} 

est ici un lien de référence: LINQ to SQL connectionstring

Sa solution définit une clé (variable) dans le web.config que je préfère ne pas faire. À part ça, je fais la même chose. Ça a marché.