dotnet ef数据库更新时出现与网络或实例相关的错误

3

我正在学习使用Visual Studio构建ASP.NET Core MVC应用程序,参考此教程。在“添加模型”步骤中,按照说明创建了一个新的独立项目,但是当我运行dotnet ef database update时,出现以下错误:

在建立到 SQL Server 的连接时出现与网络相关的或特定于实例的错误。 未找到服务器,或者无法访问该服务器。请检查实例名称是否正确,并验证 SQL Server 是否已配置为允许远程连接。(提供程序: SQL Network Interfaces, 错误: 52 - 无法找到本地数据库运行时安装。请验证 SQL Server Express 是否已正确安装,并启用本地数据库运行时功能。)

但是我已经安装了SQL Server,并且SQLEXPRESS服务正在运行。我还尝试打开端口,但没有帮助。


3
您的连接字符串是什么? - DavidG
你解决了吗?我无法将EF过渡到实际创建数据库的阶段,因为出现了错误... - Joe
对于代码迁移(update-database等),请参见此答案 - Marc.2377
2个回答

9

设置LocalDB

该模板的连接字符串是针对localdb和特定的mssqllocaldb实例。请确保您两者都具备。

appsettings.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MvcMovie-87ad796f-548e-4862-9713-d2976453319e;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

请确保已安装LocalDB。 检查方法是打开命令提示符并运行sqllocaldb。这将打印出LocalDB命令行帮助信息。如果您没有LocalDB,请安装它。

请确保您有一个名为MSSQLLocalDB的实例。检查方法是运行sqllocaldb info。如果您没有该实例,则需要创建它(sqllocaldb create mssqllocaldb)或更改连接字符串以指向您拥有的实例。

在我的计算机上工作的示例

dotnet ef database update 命令在我的计算机上运行。以下是我提示符中各种命令的输出。

> sqllocaldb info
MSSQLLocalDB

> dotnet ef migrations add Initial
Project MvcMovie (.NETCoreApp,Version=v1.0) will be compiled...
Compiling MvcMovie for .NETCoreApp,Version=v1.0
Compilation succeeded.
    0 Warning(s)
    0 Error(s)
Time elapsed 00:00:01.7783361

Done. To undo this action, use 'dotnet ef migrations remove'

> dotnet ef database update
Project MvcMovie (.NETCoreApp,Version=v1.0) was previously...
Done.

3

我想在Shaun Luttin的答案基础上进行扩展。我遇到了同样的问题,但在这种情况下,我没有使用全新安装的Visual Studio,也遇到了问题。

以下是我的解决方案(从现有的安装开始):

  1. 进入“视图”并单击“SQL Server对象资源管理器”
  2. 在服务器列表中右键单击服务器名称,然后单击“属性”
  3. 查找“连接字符串”。

在我的情况下,它显示:

"Source=(localdb)\\ProjectsV13;Initial...

为了简洁起见已省略

因此,将Server=(localdb)\\mssql替换为(localdb)\\ProjectsV13

就这样。

enter image description here


这对我来说真的很有趣,因为我原以为这不会起作用,但它确实起作用了。我在我的 MS SQL 配置中设置了别名,以便让我像其他地方一样处理我的本地实例,但由于某种原因,这些别名似乎被 EF Core 迁移所忽略。谢谢。 - The Senator

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