动态数据IObjectContextAdapter缺少引用

时间:2013-04-22 11:48:59

标签: c# asp.net entity-framework-5

我使用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?然而,改变它没有任何影响。有人可以指出我正确的方向吗?

3 个答案:

答案 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控制台”)。
现在一切都很好!

发件人:https://stackoverflow.com/a/52257676/125938

答案 2 :(得分:0)

<%@ Import Namespace="System.Data.Entity.Infrastructure" %>

将此行添加到global.asax的顶部也可以。