6

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

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

找不到类型或命名空间名称“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 参考属性显示:

运行时版本: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?但是,更改它没有任何效果。有人可以指出我正确的方向吗?

4

3 回答 3

7

让它编译起来非常容易。我需要补充:

using System.Data.Entity.Infrastructure;

到 Global.asax.cs。似乎 T4 模板不包含此默认值。

于 2013-04-25T05:54:58.147 回答
1
<%@ Import Namespace="System.Data.Entity.Infrastructure" %>

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

于 2019-02-13T00:17:09.647 回答
0

确保为您的项目安装了 EntityFramework Nuget 包。

在 Visual Studio 解决方案资源管理器中右键单击解决方案,单击管理解决方案的 Nuget 包并安装 EntityFramework。

安装后,我仍然有错误,但后来重新安装:

Update-Package -reinstall

在包管理器控制台中执行此操作(查看 > 其他窗口 > 包管理器控制台)。
现在一切都很好!

来自:https ://stackoverflow.com/a/52257676/125938

于 2018-09-10T12:23:33.550 回答