Question

I am using LINQ to SQL to connect to database from my application. When I am changing environment from production to staging, I can update my connection string in web.config. But there is one more value I need to update when environment changes. That is database name. In LINQ to SQL designer file, database name is mentioned as attribute like-

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]

How can I pick up value of Name dynamically from some config file?

Any help is really appreciated.

Was it helpful?

Solution

as mentioned on the http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.databaseattribute.name.aspx

"The DatabaseName is used only if the connection itself does not specify the database name." so you can delete this attribute and all is gonna work fine!

OTHER TIPS

I've used a wrapper class to provide a context along the lines of

public DataContext Context = new DataContext(SqlConnectionString); //much simplified

I fixed this problem by editing the .dbml file outside of Visual Studio (the designer doesn't seem to allow access to the DatabaseAttribute) and getting rid of the name property here:

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">

(note that the accepted answer is no longer correct: this attribute was overriding my connection string)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top