0

我有以下 LINQ 代码。

public List<IGrouping<Guid, ProfileImage>> GetAllUser()
{
    return _profileImageRepository.QueryProfileImage()
        .GroupBy(g => g.UserId)
        .ToList();
}

这个想法是它将检索所有用户的个人资料图片,但如果用户有多个图像,则只返回最后一个图像。

我不确定它是否正确,但这不是我最大的问题。

在我的控制器中,我有以下代码。

_homeViewModel.ProfileImages = _profileImageService.GetAllUser();

视图模型:

public List<IGrouping<Guid, ProfileImage>> ProfileImages { get; set; }

我的大问题是,我如何在我的视图中使用它,以便我可以打印正确的信息。

当我查看即时 Windows 中的数据时,它看起来像这样:

Model.ProfileImages
Count = 2
    [0]: {System.Data.Objects.ELinq.InitializerMetadata.Grouping<System.Guid,Zipr.Models.ProfileImage>}
    [1]: {System.Data.Objects.ELinq.InitializerMetadata.Grouping<System.Guid,Zipr.Models.ProfileImage>}

我试图这样做:

<ul>
    @foreach (var image in Model.ProfileImages)
    {
        <li>
            <img src="@Url.Content(String.Format("~/Content/uploads/thumbs/{0}", image.ThumbPath))" alt="" />
        </li>
    }
</ul>

任何人都有解决方案如何访问我的 Properties ThumbPath 等等?

4

1 回答 1

0

您似乎对 ID 不感兴趣;所以改变这个以返回一个列表ProfileImage

public List<ProfileImage> GetAllUser()
{
    return _profileImageRepository.QueryProfileImage()
        .GroupBy(g => g.UserId)
        .Select(u => u.First() } 
        .ToList();
}

现在,当您的视图在图像上循环时,它实际上会得到一个ProfileImageObject 而不是 an 的实例IGrouping

于 2012-08-31T14:46:36.620 回答