3

我目前正在将混合 Web Forms/MVC 2 应用程序的 MVC 2 部分转换为 MVC 3(我不熟悉 Web Forms 或 MVC 2)并且遇到了一些 foreach 语句的问题(在原始混合应用程序中工作正常)。

转换为 Razor 时,我的一些(不是全部)foreach 语句会说以下内容:

foreach 语句不能对“System.Data.Objects.DataClasses.EntityCollection<Project.Activity.PortalMember>”类型的变量进行操作,因为“System.Data.Objects.DataClasses.EntityCollection<Project.Activity.PortalMember>”不包含公共'GetEnumerator' 的定义

这是 Web Forms/MVC 2 应用程序中的一个示例 .ascx,其中 foreach 工作正常:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Project.Activity.PortalGroup>" %>
<% if (Model.PortalMembers.Count() > 0) {  %>
    <div>
    <% foreach (var item in Model.PortalMembers) {  %>
        <div>
            <%: item.SubAccount.FirstName %> <%: item.SubAccount.LastName %>
        </div>
    <%} %>
    </div>
<%} %>

这是我对 .cshtml 转换的尝试,它给了我错误:

@model Project.Activity.PortalGroup

@if (Model.PortalMembers.Count() > 0) 
{
    <div>
    @foreach (var item in Model.PortalMembers) 
    {
        <div>
            @item.SubAccount.FirstName @item.SubAccount.LastName
        </div>
    }
    </div>
}
4

2 回答 2

2

尝试在您的项目中添加对 System.Data.Linq.dll 的引用

于 2011-11-30T20:15:44.963 回答
0

尝试添加对 System.Data.Entity 的引用。

于 2013-10-23T14:38:14.457 回答