“System.Data.Entity.DbContext”类型在未引用的程序集中定义。您必须添加对程序集'EntityFramework 2的引用

时间:2013-09-28 07:18:52

标签: .net entity-framework

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

当我开始解决方案时,我得到以下异常:

  

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

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

10 个答案:

答案 0 :(得分:55)

我认为您的EntityFramework版本感到困惑

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

有关入门的信息,请参阅此讨论:The type or namespace name 'DbContext' could not be found

看看同样的问题和答案:是Here

答案 1 :(得分:11)

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

添加实体框架DLL参考: -

  1. 转到c:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NETMVC 4 \ Packages \ EntityFramework 5.0.0-rc \ lib \ net45

  2. 添加实体框架DLL

答案 2 :(得分:6)

我建议你查一下:

Allow NuGet to download missing packages during build打勾 请参阅此link

答案 3 :(得分:6)

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

答案 4 :(得分:1)

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

然后使用nugget包再次安装并重新启动visual studio。这解决了我的问题。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

我已经有了正确版本的实体框架DLL,这里没有其他答案适用于我:我必须在项目中选择EntityFramework引用,然后在属性中设置"特定版本&# 34;为真。

答案 8 :(得分:0)

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

只需将您的网络项目中的引用添加到实体框架5 ...以及您的所有设置。

答案 9 :(得分:0)

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

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