我不确定如何处理以下问题,所以任何帮助将不胜感激。我正在开发一个连接到在线MSSQL数据库的应用程序,一切正常。我正在使用的模型是实体模型。
问题是我必须将连接字符串从在线数据库更改为本地数据库,但我不知道如何。创建新模型不是一种选择。我尝试在web.config中更改连接字符串,但错误是我唯一得到的......
这就是我在web.config中所拥有的:
<connectionStrings>
<add name="PravosudnaAkademijaEntities" connectionString="metadata=res://*/PrakModel.csdl|res://*/PrakModel.ssdl|res://*/PrakModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=MY-PC;Initial Catalog=pak_baza;Integrated Security=True" providerName="System.Data.EntityClient" />
答案 0 :(得分:9)
"Data Source=HRVOJE-PC;Initial Catalog=pak_baza;Integrated Security=True"
这是您应该更改的部分,它只是您的常规SQL服务器连接字符串,
HRVOJE-PC
是计算机名称或IP,pak
是数据库的名称。如果您的本地计算机上有数据库,则希望将HRVOJE-PC
替换为localhost
。
有关SQL Server连接字符串的示例,请选中here
答案 1 :(得分:2)
或者,有一个DataContext
constructor,它接受一个连接字符串参数,如果它是临时更改,您可以使用它,并计划切换回您以前使用的那个参数。
答案 2 :(得分:1)
其他方式是复制连接字符串并为本地创建另一个字符串。打开EDMX属性,在connectionstrings下拉列表中选择本地连接字符串。
答案 3 :(得分:0)
我不知道这是否推荐,但我认为它会起作用。
在model.context.cs文件中有一个构造函数:
公共ModeEntities() :base(“name = ConnectionStringName_In_Config”) { }
如果我们在该文件中创建另一个构造函数,例如:
public ModeEntities(string connName) :base(“name =”+ connName) { }
然后我们可以使用新的构造函数传递我们想要的任何连接字符串,假设替换的connstring与原始的EF connstring具有相同的数据库结构。