作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了一个用于 NuGet Gallery 实现的数据库。我可以在 sql manager 2012 中看到数据库,并且可以使用我的连接字符串从我编写的测试程序中访问它。但是,当我尝试在包管理器控制台中运行 Update-Database 命令以让 EF 设置数据库时,我不断收到错误消息:“找不到服务器或无法访问服务器。”。
这里有更多的细节:
PM> Update-Database -Verbose
Using StartUp project 'NuGetGallery.Operations'.
Using NuGet project 'NuGetGallery'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
System.Data.ProviderIncompatibleException:
An error occurred while getting provider information from the database.
This can be caused by Entity Framework using an incorrect connection string.
Check the inner exceptions for details and ensure that the connection string is correct. --->
System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. --->
System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26
- Error Locating Server/Instance Specified) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
这是我在 NuGet Gallery MVC 站点中的连接字符串:
<add name="Gallery.SqlServer" connectionString="Server=(localdb)\v11.0;Database=NuGetGallery11;User ID=testuser;Password=notmyrealpassword;Connect Timeout=60" providerName="System.Data.SqlClient"/>
这是我的测试程序。两个应用程序中的连接字符串是相同的。
var sqlConnection2 = new SqlConnection(ConfigurationManager.ConnectionStrings["Gallery.SqlServer"].ConnectionString);
sqlConnection2.Open();
using (sqlConnection2) {
var sqlCmd = new SqlCommand("select * from Foo", sqlConnection2);
var foo = sqlCmd.ExecuteReader();
while (foo.Read()) {
int id = foo.GetInt32(0);
var name = foo.GetString(1);
var email = foo.GetString(2);
Console.WriteLine("ID:{0}, Name:{1}, Email:{2}", id, name, email);
}
}
Console.Read();
如有任何帮助,我们将不胜感激。谢谢!
最佳答案
我的问题已在另一篇文章中解决 here .您必须在管理器控制台中设置默认项目并为解决方案设置启动项目,以便更新命令找到连接字符串以及 Aydin 所说的内容,但在这种情况下,该部分已经为我设置好了。
关于c# - 为什么连接字符串不适用于 EF 迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905785/
我是一名优秀的程序员,十分优秀!