EFCore 1.1 Scaffold-DbContext提供程序错误

4

我无法在EFCore 1.1应用程序上使用Scaffold-DbContext

PM> Scaffold-DbContext -Connection "'Server=.;Database=testsite;User Id=sa;Password=Password1234;'" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir EFContext -Context ApplicationDbContext

这是它给出的错误:

Scaffold-DbContext:无法将参数“Path”绑定到参数,因为它是空字符串。 在行:1 字符:1 + Scaffold-DbContext + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Scaffold-DbContext], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Scaffold-DbContext

并不是一个直接说明问题的错误信息,所以我只运行了Scaffold-DbContext,然后在提示提供程序后,它给我返回了这个错误。我试图使用的提供程序是Microsoft.EntityFrameworkCore.SqlServer

2个回答

3
在我的情况下,我通过安装Microsoft.EntityFrameworkCore.Tools解决了这个问题。确保关闭并重新打开VisualStudio。(不要忘记在末尾添加-force标志以便从头开始重新应用更改) 例如:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force

因此,我的依赖项如下:

Microsoft.AspNetCore.All
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools

之后它按预期工作。


回顾那个旧项目,我确实安装了Tools包。最终,我们只是搁置了.NET Core,直到2.0发布,1.1中出现的任何问题都得到了解决。将其标记为答案,因为在2.1中使用此语法可以正常工作。 - MattP

1
如果您的解决方案中有多个项目,您可以尝试添加选项-StartupProject“nameofyourprojectstartup”,并使用需要运行此命令的项目名称。

当我在我的解决方案中尝试使用多个项目(Docker支持)运行“add-migration”时,我遇到了相同的错误。


这正是我所要做的。设置“默认项目”还不够,但添加该选项将使它正确生成! - DMcC

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