类型 'System.Data.Entity.DbContext' 是在未引用的程序集中定义的。必须添加对程序集"实体框架 2 "的引用



我有一个解决方案 - 一个项目是具有.edmx数据模型的类库另一个是 asp.net Web 表单项目。

当我启动解决方案时,出现以下异常:

类型"System.Data.Entity.DbContext"是在未引用的程序集中定义的。必须添加对程序集"EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"的引用。

当我在 asp.net 项目中看到引用时,我看到了对我的类的引用,但看不到对实体框架的引用。但问题是实体框架同时安装在我的类库和 Web 项目中

我认为您的EntityFramework版本很混乱

请使用NuGet软件包安装程序下载正确的版本。

有关入门,请参阅此讨论:找不到类型或命名空间名称"DbContext"

看看同样的问题和答案:在这里

我发现这个解决方案适合我。

添加实体框架 DLL 引用:-

  1. 转到 c:\程序文件 (x86)\Microsoft ASP.NET\ASP。NETMVC 4\Packages\EntityFramework 5.0.0-rc\libet45

  2. 添加实体框架 DLL

我建议你检查:

Allow NuGet to download missing packages during build打勾请参考此链接

如果某人有多个项目,则需要将其安装到需要它的项目中。对我有帮助的是更改默认项目,然后通过包管理器控制台安装并解决了它。

我遇到了同样的问题,我终于解决了它。 您应该做的是卸载PC上实体框架的每个实例。如果您使用安装文件安装了它,则必须将其从添加/删除程序中删除,并且如果您使用nugget软件包安装了它,则必须从那里卸载它。

然后,使用块包再次安装并重新启动可视化工作室。这解决了我的问题。

这样做,它将解决问题,因为您似乎没有正确安装实体框架或它无法正常工作,转到VS2012 中的>库包管理器>包管理器控制台的工具,并键入install-package EntityFramework

当我将项目从SVN拉到新计算机时,我遇到了这个问题。通过 NuGet 安装实体框架解决了这个问题。我安装了最新版本,现在是6.1.1

我已经有了正确版本的实体框架 DLL,这里的其他答案都不适合我:我必须在项目中选择 EntityFramework 引用,然后在属性中将"特定版本"设置为 true。

错误消息告诉您具有 .edmx 数据模型的类库已加载实体框架 5...(显然是因为 .edmx 中没有错误消息)...并且您的 Web 项目正在引用类库...因此,它可以访问类库中的所有内容...但它无法处理类库中的数据类型,因为 Web 项目需要对实体框架 5 的引用。 您还会注意到,智能感知也不适用于类库中的对象。

只需在 Web 项目中添加对实体框架 5 的引用即可 ...和你的一切设置。

在 *.csproj 文件中添加正确的引用。 在我的 CAS 中,我在下面的 *.csproj 文件中添加了问题并解决了。

 <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <HintPath>..packagesEntityFramework.6.1.3libnet45EntityFramework.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <HintPath>..packagesEntityFramework.6.1.3libnet45EntityFramework.SqlServer.dll</HintPath>
      <Private>True</Private>
    </Reference>

最新更新