[c#]返回记录的总数

发布时间: 2017/2/28 22:57:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用 WCF rest 服务,我想返回记录总数,就像我们有 inlinecount webapi 或微风中。

我在 WCF 的方法是

   [WebGet(UriTemplate = "GiveMeNamesOfStudents", ResponseFormat = WebMessageFormat.Json)]
    public List<MyDataClass> GiveMeNamesOfStudentsList()
    {
        var returnData = (from myentity in myEntityRepository.AsQueryable()
                          select new MyDataClass
                            {
                                Id = myentity.Id,
                                Name = myentity.Name
                            }).Skip(PageSize * PageNo).Take(PageSize).ToList();
        return returnData;
    }

如何才能将返回我的实际数据与数据的总记录数?

解决方法 1:

我建议要返回DTO含有您的列表中的总计数。

你可以添加像页计数的其它信息,例如,但会保持它这里简单。

所以你也就可以使用其他方法中,首先创建你泛型的DTO

 public class ListResult<T>
 {
     public List<T> Data { get; set; }
     public int TotalCount { get; set; }
     public int Page{ get; set; }
 }

现在返回的对象

[WebGet(UriTemplate = "GiveMeNamesOfStudents", ResponseFormat = WebMessageFormat.Json)]
public ListResult<MyDataClass> GiveMeNamesOfStudentsList()
{
    var returnData = (from myentity in myEntityRepository.AsQueryable()
                      select new MyDataClass
                        {
                            Id = myentity.Id,
                            Name = myentity.Name
                        }).Skip(PageSize * PageNo).Take(PageSize).ToList();

    return new ListResult<MyDataClass> 
                        { 
                             Data = returnData, 
                             TotalCount = myEntityRepository.Count(), 
                             Page = PageNo 
                        };
}
赞助商