我使用Update 2全新安装了VS2012。我创建了一个“ASP.NET动态数据实体Web应用程序”的新项目。然后我添加了一个“ADO.NET实体数据模型”,它是从现有的SQLServerExpress数据库中生成的。
然而,当我去构建解决方案时,我收到以下错误:
找不到类型或命名空间名称'IObjectContextAdapter'(您是否缺少using指令或程序集引用?)
这似乎在System.Data.Entity.Infrastructure
中声明,但我无法在任何地方找到该程序集。我已经验证我已经为解决方案安装了EF5,因为我的packages.config显示:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
</packages>
EntityFramework引用属性显示:
RuntimeVersion:v4.0.30319
版本:5.0.0.0
在web.config中我有:
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
这看起来不对,应该说5.0.0.0?然而,改变它没有任何影响。有人可以指出我正确的方向吗?
答案 0 :(得分:6)
让这个编译变得非常简单。我需要补充一下:
using System.Data.Entity.Infrastructure;
到Global.asax.cs。似乎T4模板不包含此默认值。
答案 1 :(得分:0)
确保为项目安装了EntityFramework Nuget软件包。
从Visual Studio解决方案资源管理器中右键单击解决方案,单击“管理解决方案的Nuget程序包”并安装EntityFramework。
安装完成后,我仍然出现错误,但随后重新安装:
Update-Package -reinstall
在Package Manager控制台中执行此操作(“查看”>“其他窗口”>“ Package Manager控制台”)。
现在一切都很好!
答案 2 :(得分:0)
<%@ Import Namespace="System.Data.Entity.Infrastructure" %>
将此行添加到global.asax的顶部也可以。