2009-09-14 12 views
5

estoy utilizando LINQ a SQL para conectarse a la base de datos de mi solicitud. Cuando cambio el entorno de la producción a la puesta en escena, puedo actualizar mi cadena de conexión en web.config. Pero hay un valor más tengo que actualizar cuando cambia el medio ambiente. Ese es el nombre de la base de datos. En LINQ a SQL archivo del diseñador, nombre de la base se menciona como atributo como-nombre del conjunto de la base de datos de forma dinámica en LINQ to SQL

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

¿Cómo puedo recoger valor de Nombre de forma dinámica desde algún archivo de configuración?

Cualquier ayuda es realmente apreciada.

+1

Encontré eliminar el atributo de base de datos del archivo dbml.cs, no proporcioné ningún error o excepción. Por lo tanto, este atributo no es obligatorio, pero lo agrega el diseñador por defecto. –

+0

¿Puede inaceptables desde la respuesta aceptada? Ya no es correcto –

Respuesta

0

He usado una clase contenedora para proporcionar un contexto a lo largo de las líneas de

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

He arreglado este problema mediante la edición del archivo .dbml fuera de Visual Studio (el diseñador no parece permitir el acceso a la DatabaseAttribute) y deshacerse de la propiedad de nombre aquí:

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

(tenga en cuenta que la respuesta aceptada ya no es correcta: este atributo se preponderantes con mi cadena de conexión)

Cuestiones relacionadas