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();
}
Я расширил опцию "Подключение". Установите "Настройки приложения" на "Неверно"
Ответы
Ответ 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 вручную, потому что он будет переписан при добавлении/редактировании/удалении таблицы, хранимой процедуры и т.д.