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>

プロパティ ThumbPath などにアクセスする方法を知っている人はいますか?

4

1 に答える 1

0

ID には興味がないようです。これを変更して、のリストを返しますProfileImage

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

ビューが画像をループすると、実際にProfileImageはインスタンスではなくオブジェクトが取得されますIGrouping

于 2012-08-31T14:46:36.620 に答える