如何在 ASP.NET 核心 Web 应用程序(.NET 框架 4.6.1)中使用 EF6(DB-first)?

Gre*_*cks 7 entity-framework entity-framework-6 asp.net-core-mvc asp.net-core

我正在使用完整的 .NET 框架 4.6.1 模板构建 asp.net 核心 Web 应用程序,如下所示-

1

我的 project.json 显示-

  "frameworks": {
    "net461": { }
  },
Run Code Online (Sandbox Code Playgroud)

我想使用EF6(不是 EF 核心),因此使用此命令使用 NuGet 包管理器安装实体框架 -

Install-Package Entityframework
Run Code Online (Sandbox Code Playgroud)

Project.json 添加了这个条目-

"EntityFramework": "6.1.3",
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令创建 DBcontext 和模型时:

Scaffold-DbContext "Server=XXXXX;Database=XXXXXXX;User Id=XXXXXXX;password=XXXXXXX" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t TABLENAME
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误:

Scaffold-DbContext :术语“Scaffold-DbContext”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。

检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

据我了解(因为我有 Powershell v3.0 和 .NET core 1.0.1),我的 project.json 中缺少其余的 EF 工具和依赖项。那么我需要在 project.json 中添加哪些工具和依赖项才能使用 EF6(不是 EF 核心)?

我可以看到的一些选项如下所示。但不确定哪一个适合 EF6

“EntityFramework.MicrosoftSqlServer”:

在此处输入图片说明

“EntityFramework.SqlServer”:

在此处输入图片说明

"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final"

在此处输入图片说明

Pra*_*hra 0

我不明白你在 .net 中使用 core 的意思,但如果你的目标是旧的 .net 项目,你需要安装兼容版本。

对于 .net 4.8,以下软件包版本将起作用:

Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.1.25
Run Code Online (Sandbox Code Playgroud)