实体框架连接字符串

5

我不确定如何解决以下问题,所以需要您的帮助。我正在开发一个连接在线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" />


你正在使用哪个在线Mssql托管服务,以及如何连接在线服务?因为在我的情况下,本地主机可以正常工作,但在线服务却显示错误。 - Ahmad
4个回答

9
"Data Source=HRVOJE-PC;Initial Catalog=pak_baza;Integrated Security=True"

这是您应该更改的部分,它只是您常规的SQL服务器连接字符串。 HRVOJE-PC 是机器名称或IP地址,pak 是数据库名称。如果您有一个在本地计算机上的DB,您需要将HRVOJE-PC 替换为 localhost

有关SQL Server连接字符串示例,请查看此处


谢谢,那就是答案,我真的不知道为什么没看到那么明显的东西!再次感谢您的解释! - wegelagerer

2

或者,您可以使用一个带有连接字符串参数的DataContext构造函数,如果这只是一个临时更改,而您计划切换回之前使用过的那个。


1

另一种方法是复制连接字符串并为本地创建另一个。打开EDMX属性,在连接字符串下拉菜单中选择本地连接字符串。


0

我不确定这是否被推荐,但我认为它会奏效。

在 model.context.cs 文件中,有一个构造函数:

public ModeEntities() : base("name=ConnectionStringName_In_Config") { }

如果我们在该文件中创建另一个构造函数,如下所示:

public ModeEntities(string connName) : base("name=" + connName) { }

那么,假设替换后的连接字符串具有与原始 EF 连接字符串相同的数据库结构,我们就可以使用新构造函数传递任何想要的连接字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接