2013-04-22 68 views
5

我有新的VS2012与更新2的安装。我创建了一个“ASP.NET动态数据实体Web应用程序”的新项目。然后,我添加一个“ADO.NET实体数据模型”,这是从现有的SQLServerExpress数据库生成的。动态数据IObjectContextAdapter缺少参考

但是当我去构建解决方案我收到以下错误:

The type or namespace name 'IObjectContextAdapter' could not be found (are you missing a using directive or an assembly reference?)

出现在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
Version: 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

嗨,因为你想知道如果有人有任何输入 - 请看看[如果我没有得到一个好答案](http://stackoverflow.com/faq#bounty)。 – Jesse 2013-04-25 02:27:35

+0

谢谢杰西。我已经看过了,下次会记住这一点。 – TheEdge 2013-04-25 05:53:47

回答

5

获得这个编译结果非常简单。我需要添加:

using System.Data.Entity.Infrastructure; 

Global.asax.cs。似乎T4模板不包括这是默认的。

+0

永远不会发生,如果你有resharper ;-)缺少使用声明,或寻找他们是一种痛苦。 – 2013-04-25 12:27:44

+0

奇怪的是,R#没有抱怨或建议导入必要的程序集 – TheEdge 2013-04-28 09:02:51

+2

使用VS2013 - 也必须安装'EntityFramework' NuGet包。 – hofnarwillie 2014-08-19 19:29:12