与EntityCollection <tentity> </tentity>的foreach错误

时间:2013-06-04 13:21:10

标签: c# entity-framework-4.1

您好我收到错误我无法解释。

我正在尝试使用foreach循环解析EntityCollection

这是我得到的错误:

  

foreach语句不能对类型
的变量进行操作   'System.Data.Objects.DataClasses.EntityCollection&LT; myEntity所&GT;'
  因为   'System.Data.Objects.DataClasses.EntityCollection&LT; myEntity所&GT;'
  不包含'GetEnumerator'

的公共定义

这真的很奇怪,因为我有一个控制台应用程序,我工作得很好。 BUt然后我想制作一个Web应用程序。

使用控制台应用程序,我可以执行foreach,但我在Web应用程序中收到错误。

这让我发疯了。请帮助:)

以下是代码:

foreach (INITIATIVE_REF_STRATEGIC_AXIS stratAxe in i.INITIATIVE_REF_STRATEGIC_AXIS)
{

}

i.INITIATIVE_REF_STRATEGIC_AXIS的类型为System.Data.Objects.DataClasses.EntityCollection<INITIATIVE_REF_STRATEGIC_AXIS>

2 个答案:

答案 0 :(得分:3)

这听起来像是缺少装配参考。

您的代码出现编译错误,但尚未消失并正确刷新所有引用。因此,为什么它可以看到你知道的东西。

它有点像猪...删除所有bin目录清理并重建所有并交叉手指。

无法开始从项目中删除引用并阅读它们。

通常最终会修复。

你的输出中可能有另一个构建错误...修复可能会让程序集编译,然后允许其他东西编译,这将解决你的问题。

如果您按编号列对构建错误进行排序并首先修复最低编号,则可能会更容易找到问题。

答案 1 :(得分:2)

Linq扩展方法不在上下文中,这就是您收到此错误的原因。

1)验证项目是否具有以下参考:

System.Data.Entity.dll

2)如果您使用的是ASP.NET MVC,请将其放在View的顶部

@using System.Linq;

或者在views文件夹中的web.config中:

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Linq" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

希望这能帮到你!