我有一个解决方案 - 一个项目是带有.edmx数据模型的类库 另一个是asp.net Web表单项目。
当我开始解决方案时,我得到以下异常:
类型'System.Data.Entity.DbContext'在未引用的程序集中定义。您必须添加对程序集'EntityFramework,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
当我在asp.net项目中看到引用时,我看到了对我的类的引用,我看不到对实体框架的引用。但问题是实体框架安装在我的类库和Web项目中
答案 0 :(得分:55)
我认为您的EntityFramework
版本感到困惑
请使用NuGet
软件包安装程序下载正确的版本。
有关入门的信息,请参阅此讨论:The type or namespace name 'DbContext' could not be found
看看同样的问题和答案:是Here
答案 1 :(得分:11)
我发现这个解决方案适合我。
添加实体框架DLL参考: -
转到c:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NETMVC 4 \ Packages \ EntityFramework 5.0.0-rc \ lib \ net45
添加实体框架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>