您好我收到错误我无法解释。
我正在尝试使用foreach循环解析EntityCollection
这是我得到的错误:
foreach语句不能对类型
的公共定义
的变量进行操作 'System.Data.Objects.DataClasses.EntityCollection< myEntity所>'
因为 'System.Data.Objects.DataClasses.EntityCollection< myEntity所>'
不包含'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>
答案 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>
希望这能帮到你!