如何将 EF 核心搭建到现有数据库中?

How to scaffold EF core to existing DB?

我正在尝试使用 Entity Framework Core 对现有数据库进行逆向工程。我尝试按照说明进行操作 from Microsoft,但出现错误:

Unable to find provider assembly with name EntityFramework. Ensure the specified name is correct and is referenced by the project.

我是运行项目目录下的命令:

dnx ef dbcontext scaffold "Server=REMOVED;Database=REMOVED;User ID=REMOVED;Password=REMOVED" EntityFramework

我做错了什么?

确保您位于项目文件夹中而不是解决方案文件夹上下文中。昨天我能够让它与以下一起工作(注意最后的 EntityFramework.MicrosoftSqlServer)

dnx ef dbcontext scaffold "{connectionString}" EntityFramework.MicrosoftSqlServer

编辑:

确保在您的 project.json 中包含以下内容:

EntityFramework.MicrosoftSqlServer.Design

安装休闲 NuGet 包:

Install-Package Microsoft.EntityFrameworkCore.SqlServer

我在尝试从现有 SQLite 数据库构建基架时遇到以下错误:

Unable to find provider assembly with name Microsoft.EntityFramworkCore.Sqlite. Ensure the specified name is correct and is referenced by the project.

该项目与另一个项目在一个解决方案中。即使在包管理器控制台中引用了正确的项目,它也只有在我选择项目上下文菜单中的 'Set as Startup Project' 项时才有效。

关闭Visual Studio
删除 %temp% 个文件夹
删除 .vs 个文件夹

dotnet ef dbcontext scaffold "Server=REMOVED;Database=REMOVED;User ID=REMOVED;Password=REMOVED" Microsoft.EntityFrameworkCore.SqlServer
  1. 从 Nuget 安装 Microsoft.EntityFrameworkCore.SqlServer

  2. 在 PM 中将默认项目设置为将包含 Models 文件夹的项目,然后在 PM 中...

PM> Scaffold-DbContext "Server=YOURSERVER;database=YOURDB;Trusted_Connection=True;" MicrosoftEntityFrameworkCore.SqlServer -OutputDir Models -force