Punto connectionstring en dbml a la aplicación.config


¿Puedo apuntar la cadena de conexión en Dbml.designer.cs a la cadena de conexión en el app.conf? Escribí el código debajo del cual apunta con éxito al app.config.

public leDataContext() : 
    base(ConfigurationManager.ConnectionStrings["leConnString"].ToString(), mappingSource)
    {
        OnCreated();
    }

Sin embargo, cada vez que modifique o agregue una tabla en el dbml, comenzará a reemplazar automáticamente ese código en este

 public leDataContext() : 
            base("Data Source=.\\SQLEXPRESS;AttachDbFilename=\"D:\\My Projects\\App_Data\\le.mdf\";Integrated Security=True;Connect Timeout=30;User Instance=True", mappingSource)
    {
        OnCreated();
    }

He ampliado la opción "Conexión". Establecer" Configuración de la aplicación " a False

Author: luchaninov, 2011-02-28

2 answers

No modifique el archivo Dbml.designer.cs manualmente, porque se reescribirá cuando edite/agregue una tabla, etc. como dijiste. En lugar de esto, establezca la propiedad Connection para el archivo de diseñador .dbml en None y agregue una clase parcial con constructor sin parámetros:

public partial class leDataContext
{ 
   public leDataContext() : 
       base(ConfigurationManager.ConnectionStrings["leConnString"].ToString())
    {
        OnCreated();
    }    
}
 39
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-01 12:40:14

Esto se parece más a una extensión de la respuesta de @Alex.

Paso 1 : Establezca la propiedad de conexión de su .archivo dbml a "ninguno".

introduzca la descripción de la imagen aquí

Paso 2: Crear una nueva clase parcial separada con el mismo nombre que el de la clase parcial existente para el .archivo dbml. Y establezca la propiedad ConnectionString utilizando el constructor sin parámetros.

public partial class DataClassesDataContext
{
  public DataClassesDataContext() : base(ConfigurationManager.ConnectionStrings["Dev-connString"].ConnectionString)
  {
    OnCreated();
  }
}

Paso 3: Casi listo ! Por último es necesario para definir su connectionString en su app.archivo de configuración, como se muestra a continuación.

<connectionStrings>

  <add
  name="Dev-connString"
  connectionString="Data Source=yasser-home;Initial Catalog=pp;Persist Security Info=True;User ID=sa;Password=gogole"
  providerName="System.Data.SqlClient" />

</connectionStrings>

Ahora puede cambiar fácilmente la ConnectionString desde la aplicación.archivo de configuración sin tener que volver a compilar su código, que sería el caso de lo contrario.

¿Por qué creé una clase parcial separada ? No puedo editar el Dbml existente.diseñador.cs archivo ?

No modifique Dbml.diseñador.archivo cs manualmente, porque se reescribirá cuando agregue / edite / elimine una tabla, un proceso almacenado, etc.

 44
Author: Yasser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-22 05:29:52