Подтвердить что ты не робот

Point connectionstring в dbml в app.config

Могу ли я просто указать строку подключения в Dbml.designer.cs на строку соединения в app.conf? Я написал код, ниже которого он успешно указывает на app.config.

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

Однако всякий раз, когда я изменяю или добавляю таблицу в dbml, она начнет автоматически заменять этот код на этот

 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();
    }

Я расширил опцию "Подключение". Установите "Настройки приложения" на "Неверно"

4b9b3361

Ответ 1

Не изменяйте файл Dbml.designer.cs вручную, потому что он будет переписан при редактировании/добавлении таблицы и т.д., как вы сказали. Вместо этого установите для свойства Connection для файла конструктора .dbml значение None и добавьте неполный класс с конструктором без параметров:

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

Ответ 2

Это больше похоже на расширение ответа @Alex.

Шаг 1. Установите для свойства подключения вашего файла .dbml значение "none".

enter image description here

Шаг 2: Создайте новый отдельный частичный класс с тем же именем, что и существующий частичный класс для файла .dbml. И установите свойство connectionString, используя конструктор без параметров.

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

Шаг 3: Готово! Наконец, вам нужно определить ваш connectionString в файле app.config, как показано ниже.

<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>

Теперь вы можете легко изменить connectionString из файла app.config, не перекомпилируя свой код, что было бы иначе.

Почему я создал отдельный частичный класс? Не могу изменить существующий файл Dbml.designer.cs?

Не изменяйте файл Dbml.designer.cs вручную, потому что он будет переписан при добавлении/редактировании/удалении таблицы, хранимой процедуры и т.д.