66

我无法将 EF 安装在我非常简单的名为“Match”的项目上(刚刚学习 MVC,迟到总比没有好)。这里的一般上下文是我创建了只有 2 个字段的 Model 类,现在我想更改 Model 类以拥有更多的字段/属性。我已经在 Model 类中进行了更改,现在正在尝试更新数据库以匹配。我正在尝试使用 EF 的 Update-Database 来做到这一点。

PM> install-package EntityFramework 您正在从 Microsoft 下载 EntityFramework,其许可协议位于http://go.microsoft.com/fwlink/?LinkId=253898&clcid=0x409。检查软件包是否有其他依赖项,这些依赖项可能附带他们自己的许可协议。您对包和依赖项的使用构成您接受他们的许可协议。如果您不接受许可协议,请从您的设备中删除相关组件。成功安装“EntityFramework 5.0.0”。成功将“EntityFramework 5.0.0”添加到 Match。

键入“get-help EntityFramework”以查看所有可用的实体框架命令。

PM> Enable-Migrations Get-Package:找不到与参数名称“ProjectName”匹配的参数。在 C:\Users\Dave\Documents\Visual Studio 2010\Projects\Match\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:611 char:40 + $package = Get-Package -ProjectName <<<< $项目全名 | ?{ $_.Id -eq 'EntityFramework' } + CategoryInfo : InvalidArgument: (:) [Get-Package], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,NuGet.PowerShell.Commands.GetPackageCommand

EntityFramework 包未安装在项目“Match”上。

4

20 回答 20

233

希望没有人像我一样愚蠢,但为了搜索者的利益:

此错误的一种可能性 - 在包管理器控制台中,有一个“默认项目”下拉菜单。如果设置不正确,您将得到 EntityFramework 包未安装在项目“x”上。将下拉列表更改为您的 EF 项目,一切都很好。

于 2013-02-05T13:40:53.427 回答
74

就我而言,重新启动 Visual Studio 会有所帮助。

于 2016-05-14T16:24:33.753 回答
27

只需将 NuGet 更新到 2.x。EF 5.0 需要它。

于 2012-08-24T04:56:30.967 回答
10

我刚刚重新启动了 Visual Studio,它工作正常。

于 2019-05-19T16:09:04.197 回答
8

就我而言,我有一个项目由于某种原因没有 Packages.config 文件。结果是我收到错误消息“项目 xxxx 上未安装 EntityFramework 包”。

要解决这个问题,只需添加一个 Packages.config 文件,然后“Install-Package EntityFramework”就可以工作了。

于 2013-11-21T09:33:18.573 回答
7

在我的项目中,我分别在它们上安装了 EntityFramework。即使他们在每个项目上都有相同的版本号,它仍然不起作用。导致你得到同样的错误。

为了解决这个问题,我从所有项目中删除了 EntityFramework 并再次重新安装。

Get-Project -all | Uninstall-Package EntityFramework

接下来,您只需重新安装它。

Get-Project -all | Install-Package EntityFramework
于 2015-08-04T00:22:04.173 回答
6

就我而言,我在我的项目中安装了 Microsoft.EntityFrameworkCore.Tools 包!问题已解决。

于 2018-04-08T10:45:59.123 回答
4

我也有同样的问题。我已将 EFCore 添加到已安装 EF6 的项目中。因此使用 EF6 设置为 EFCore 时执行 add-migration xx 命令,我收到此错误。删除 EF6 并重新启动 Visual Studio 解决了我的问题。

于 2019-01-19T15:01:26.440 回答
3

您必须将 EF 安装到您的项目中。您可以通过工具|管理 NuGet 包来执行此操作,在“已安装”下查看并单击“管理”。在那里,您将看到在您的项目中安装 EF 的选项。之后,一切都应该正常工作并且模型更改将成为可能。这可能需要相当长的时间(就我而言,确实如此!)。成功!彼得

于 2012-08-31T10:31:03.537 回答
3

打开包管理器控制台并从包管理器控制台的下拉列表中选择默认项目并在命令窗口中使用此命令安装实体框架。

install-Package Entityframework
于 2015-03-07T06:28:38.297 回答
2

我遇到过这个问题,只需安装Microsoft.EntityFrameworkCore.Tools nuget 包即可解决

该软件包将启用这些常用命令: Add-Migration Drop-Database Get-DbContext Get-Migration Remove-Migration Scaffold-DbContext Script-Migration Update-Database

于 2021-11-08T00:17:36.490 回答
1

尝试从项目的 Nuget 包管理器更新实体框架包,这解决了我的问题。

于 2016-08-27T06:46:59.183 回答
1

在我的情况下,重新安装实体包并重新启动 Visual Studio。

于 2021-05-05T17:52:36.847 回答
0

在我的情况下,packages.config 文件在磁​​盘上,但不在 TFS 中。

于 2014-07-16T18:08:17.757 回答
0

如果在 Visual Studio 解决方案中卸载了实体框架命令的目标项目(即,如果您之前在解决方案资源管理器中右键单击该项目并选择了“卸载项目”),则可能会发生此错误。

在这种情况下,解决方案是加载项目,然后再次尝试运行实体框架命令。

于 2016-07-08T17:06:42.370 回答
0

如果您是第一次打开项目,应该可以工作,

第二次点击控制台项目和“设置为stratup项目”

于 2019-01-05T15:43:11.393 回答
0

安装 EntityFrameworkCore 安装 EntityFrameworkCore.SqlServer 然后关闭 Visual Studio 并重新打开问题已修复

于 2019-01-17T14:19:28.440 回答
0

您还可以在 VS 中清除缓存 NuGet。解决了我的问题

于 2019-07-16T21:19:02.687 回答
0

就我而言,我有一个包含三个项目的 Xamarin.Forms 解决方案 - 后端(用于 Azure 数据库连接)、一个公共库、一个 iOS 项目和一个 Android 项目。我收到的错误消息是"The EntityFramework package is not installed on project ...""No context type was found in the assembly ..."。我通过将后端设置为我的启动项目,然后在包管理器控制台中输入以下格式的命令来解决它:

Enable-Migrations -ProjectName Backend -Verbose

在那之后

add-migration -ProjectName Backend Initial

我希望这对某人有帮助:)

于 2019-07-28T16:39:39.233 回答
0

此问题可能与 EntityFramework 和 EntityFrameworkCore 的两个版本冲突有关。为了检查它,你可以写:Get-Module在包管理器控制台中。如果您同时看到 EntityFramework 和 EntityFrameworkCore,则需要删除 EntityFramework 或在 EntityFramework 上链接的依赖项。对于搜索依赖项,您可以在解决方案资源管理器中使用搜索解决方案输入。删除依赖项或 EntityFramework 后,您需要重新启动项目。

于 2020-10-01T13:37:28.007 回答