【发布时间】:2014-12-09 12:26:20
【问题描述】:
EF 有点新。我正在创建用户从计算机中选择数据库的应用程序。现在我想更改连接字符串以匹配数据库的位置,例如:这是指向磁盘上某处的数据库位置的当前连接字符串(C:\Users\student\Documents\TestData.md):
add name="test" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename="C:\Users\student\Documents\TestData.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
现在,当用户从磁盘选择新数据库时,连接字符串需要更改为新数据库所在的位置(C:\Users\student\Desktop\NewSelectedDatabase.mdf):
add name="test" connectionString="metadata=res://*/Model2.csdl|res://*/Model2.ssdl|res://*/Model2.msl;provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;attachdbfilename="C:\Users\student\Desktop\NewSelectedDatabase.mdf";integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
现在我已经创建了文件对话框,因此用户可以选择数据库并获取其地址。我还将我的 edmax 更改为接收自定义连接字符串:
public partial class Tester : DbContext
{
public Tester()
: base("name=Test")
{
}
public Tester(string customcs)
: base(customcs)
{
}
现在我的问题是我将什么作为自定义连接字符串传递给构造函数?我希望你能理解我,因为我的英语真的很差,解释的东西很糟糕
【问题讨论】:
-
检查this链接。
-
找到解决方案:我将旧连接字符串复制粘贴到字符串,然后将 attachdbfilename 更改为 openfile 对话框位置,然后传递给构造函数,谢谢:D
-
@user3764527 -- 我在下面添加了我的答案,它提供了另一种更动态的方式(使用部分类)。
标签: c# winforms entity-framework-5 connection-string