0

これが理にかなっているかどうか知りたいのですが。

私はDTOモデルを持っています:

public class CategoryListByKeywordsDetailDto : ILocalizable
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string NameEN { get; set; }
    public string NameES { get; set; }
    public string NameFR { get; set; }
    public string NamePT { get; set; }
    public int SearchCount { get; set; }
    public string ListController { get; set; }
    public string ListAction { get; set; }
}

とそのリスト

public class CategoryListByBeywordsListDto
{
    public CategoryListByBeywordsListDto()
    {
        CategoryListByKeywordsDetails = new List<CategoryListByKeywordsDetailDto>();
    }

    public IList<CategoryListByKeywordsDetailDto> CategoryListByKeywordsDetails { get; set; }

    public int TotalSearchCount { get; set; }
}

'sリスト'TotalSearchCountに基づいてプロパティをリアルタイムで計算できますか?CategoryListByKeywordsDetailsSearchCount

4

1 に答える 1

1

あなたはそれをすることができるはずです。TotalSearchCountのgetメソッドを実装する必要があります。次のようなものを試してください。

public class CategoryListByBeywordsListDto
{
    public CategoryListByBeywordsListDto()
    {
        CategoryListByKeywordsDetails = new List<CategoryListByKeywordsDetailDto>();
    }

    public IList<CategoryListByKeywordsDetailDto> CategoryListByKeywordsDetails { get; set; }

    public int TotalSearchCount 
    { 
        get
        {
            if(CategoryListByKeywordsDetails != null)
            {
                return CategoryListByKeywordsDetails.Sum(x => x.SearchCount);
            }

            return 0;
        }

        //leave out set.
    }
}

DtoでSearchCountを更新するクライアントプロセスが複数ある場合は、もう少し問題が発生します。ユーザーの操作なしでクライアントで更新するためにこれが必要な場合(つまり、更新ボタン)、データベースを定期的にポーリングして値をクライアントにプッシュするための何かを実装する必要があります。はるかに複雑ですが、スタックオーバーフローの質問で答えることができるものではありません。

于 2012-12-31T13:21:00.420 に答える