我可以将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();
}
我扩展了“连接”选项。将“应用程序设置”设置为False
答案 0 :(得分:46)
这更像是@Alex答案的延伸。
第1步:将.dbml文件的连接属性设置为“none”。
步骤2:创建一个新的单独的部分类,其名称与.dbml文件的现有部分类的名称相同。并使用无参数构造函数设置connectionString属性。
public partial class DataClassesDataContext
{
public DataClassesDataContext() : base(ConfigurationManager.ConnectionStrings["Dev-connString"].ConnectionString)
{
OnCreated();
}
}
第3步:差不多完成了!最后,您需要在app.config文件中定义connectionString,如下所示。
<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>
您现在可以轻松地从app.config文件更改connectionString,而无需重新编译代码,否则就是这种情况。
为什么我要创建一个单独的部分类?我无法编辑现有的Dbml.designer.cs文件吗?
不要手动修改Dbml.designer.cs文件,因为在添加/编辑/删除表,存储过程等时会重写它。
答案 1 :(得分:39)
不要手动修改Dbml.designer.cs
文件,因为在您编辑/添加表格等时,它会被重写。而不是将Connection
设计器文件的.dbml
属性设置为None
,并使用无参数构造函数添加部分类:
public partial class leDataContext
{
public leDataContext() :
base(ConfigurationManager.ConnectionStrings["leConnString"].ToString())
{
OnCreated();
}
}