我有一个解决方案 - 一个项目是具有.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 引用:-
-
转到 c:\程序文件 (x86)\Microsoft ASP.NET\ASP。NETMVC 4\Packages\EntityFramework 5.0.0-rc\libet45
-
添加实体框架 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>