foreach error with EntityCollection<TEntity>

本文关键字:TEntity gt error lt EntityCollection foreach with | 更新日期: 2023-09-27 18:16:47

你好,我得到一个错误,我不能解释它

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

下面是我得到的错误:

foreach语句不能操作
类型的变量"System.Data.Objects.DataClasses.EntityCollection '
因为"System.Data.Objects.DataClasses.EntityCollection '
不包含'GetEnumerator'的公共定义

这真的很奇怪,因为我有一个控制台应用程序,我工作得很好。但是后来我想做一个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>

foreach error with EntityCollection<TEntity>

这听起来像是您缺少一个程序集引用。

你的代码给出编译错误,它还没有正确刷新所有引用。这就是为什么它看不到你知道存在的东西。

有点像猪…去删除你所有的bin目录清理和重建所有和交叉手指。

如果失败,开始从项目中删除引用并读取它们。

通常最终修复。

你可能有另一个构建错误在你的输出…解决这个问题可能会让程序集编译,然后允许其他程序编译,从而解决这里的问题。

如果您按数字列对构建错误进行排序,并首先修复最低的数字,您可能会发现事情更容易。

Linq扩展方法不在上下文中,这就是为什么你得到这个错误。

1)验证项目是否有以下引用:

System.Data.Entity.dll

2)如果您使用的是ASP。NET MVC把它放在View的顶部

@using System.Linq;

或者在网上。在views文件夹中配置:

<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>

希望这对你有帮助!