Stop LINQ to SQL dbml from updating connection str

2019-02-06 11:37发布

问题:

Every time I drag a modified table into my dbml, VS2010 wants me to update the connection string even though I have created a data connection with the exact same information. Every time this happens it changes my connection string to 'DataSourceConnectionString' and I have to delete it from 5 different files and replace it with the name of the connection string I was using previously so it doesn't screw up everyone else using the file through source control. Any Ideas?

回答1:

I figured out another away after tinkering with answers to some somewhat related issues.

To solve the problem I was having I needed to delete the Data Connection I created to connect to my database from your server explorer window in VS2010. You then need to open the .dbml designer and right-click in the white space and select properties. A properties window will open and there will be a "Connection" section, click on the small arrow to open it up. If you click on the connection string row a button will appear with dots(...) on it. When you click on this button it will open a Connection Properties window. This window will already have all of the same connection properties your .dbml already has. All you have to do is click 'OK' and it will automatically create a data connection for you in the server explorer that wont cause you to add a new connection string to the .dbml when you drag a new object to it!

Yay! No more deleting extra connection strings every time I update! :D



回答2:

When you instantiate your DataContext, use the overload that allows you to specify the connection string. This will overwrite whatever values that were put there by the Designer. For example, instead of just:

DataClasses1DataContext db = new DataClasses1DataContext();

use:

DataClasses1DataContext db = new DataClasses1DataContext("..connection string..");

or

DataClasses1DataContext db = new DataClasses1DataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

Hope this is what you are looking for.