.NET Core EF 脚手架引发无法找到提供程序程序集“Source=localhost”

Posted

技术标签:

【中文标题】.NET Core EF 脚手架引发无法找到提供程序程序集“Source=localhost”【英文标题】:.NET Core EF Scaffolding throws unable to find provider assembly 'Source=localhost' 【发布时间】:2021-09-14 12:10:19 【问题描述】:

我正在使用核心 3,并且我在我的项目中包含以下包

"Microsoft.EntityFrameworkCore.Design": "5.0.7",
"Microsoft.EntityFrameworkCore.SqlServer": "5.0.7",
"Microsoft.EntityFrameworkCore.Tools": ""5.0.7""

这是我的连接字符串,我之前已经测试过连接并且它成功了

  "ConnectionStrings":  "bikeStore": "Data Source=localhost;Initial Catalog=BikeStore;User ID=sa;Password=***********" 

现在我想运行下面的 Scaffold 命令

Scaffold-DbContext Data Source=localhost;Initial Catalog=BikeStore;User ID=sa;Password=***********Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data

我得到以下错误

Build started...
Build succeeded.
Unable to find provider assembly 'Source=localhost'. Ensure the name is correct and it's referenced by the project.

这是服务器资源管理器以及我如何连接到我的数据库

我的方法有什么问题?

【问题讨论】:

您可以尝试将连接字符串中的Data Source 替换为Server 吗? 我现在试过了,它显示了这个,不确定它是什么意思'cmdlet Scaffold-DbContext at command pipeline position 1 Supply values for the following parameters: Provider:' 我应该为提供者写什么?跨度> 【参考方案1】:

您可以将Data Source 替换为Server 并提供提供者标志:

Scaffold-DbContext -Connection "Server=localhost;Initial Catalog=BikeStore;User ID=sa;Password=***********;" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data

【讨论】:

以上是关于.NET Core EF 脚手架引发无法找到提供程序程序集“Source=localhost”的主要内容,如果未能解决你的问题,请参考以下文章

带有 EF Core 的 .NET 项目在一个特定页面上引发 ObjectDisposedException

如何解决在 Linux(Ubuntu 18.04)中进行 EF Core 数据库脚手架的“无法使用 Kerberos 进行身份验证”问题?有啥解决办法吗?

.net core中使用efcore

为啥 EF Scaffold-DbContext 命令在针对 net6.0 报告“未找到设计时服务”后会引发 NRE?

无法使用 EF Core 或 LinqToDb EF Core Tools 或 ADO.NET 运行任何存储过程创建脚本

在 Visual Studio 2015 for ASP.NET Core MVC 中查看脚手架失败