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; }
}

我可以根据'列表'实时计算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 回答