我重新安装了VS2012和Update 2.我创建了一个新的“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:h.0.030319 版本: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?然而,改变它没有任何影响。有人可以指点我正确的方向吗?
得到这个编译结果非常简单。我需要补充一下:
using System.Data.Entity.Infrastructure;
到Global.asax.cs。似乎T4模板不包含此默认值。
确保为项目安装了EntityFramework Nuget包。
右键单击Visual Studio Solution Explorer中的解决方案,单击Manage Nuget packages for solutions并安装EntityFramework。
一旦安装,我仍然有错误,但然后重新安装:
Update-Package -reinstall
在程序包管理器控制台(视图>其他窗口>程序包管理器控制台)中执行此操作。 现在一切都很好!
<%@ Import Namespace="System.Data.Entity.Infrastructure" %>
将此行添加到global.asax的顶部也可以。