Automapper и PagedList - PullRequest
       4

Automapper и PagedList

1 голос
/ 03 сентября 2011

Как я могу отобразить такой список? Как будет выглядеть мой CreateMap? Класс для PagedList выглядит так:

public interface IPagedList
{
    int TotalCount
    {
        get;
        set;
    }

    int PageIndex
    {
        get;
        set;
    }

    int PageSize
    {
        get;
        set;
    }

    bool IsPreviousPage
    {
        get;
    }

    bool IsNextPage
    {
        get;
    }
}

public class PagedList<T> : List<T>, IPagedList
{

    public PagedList(IQueryable<T> source, int index, int pageSize)
    {
        this.TotalCount = source.Count();
        this.PageSize = pageSize;
        this.PageIndex = index;
        this.AddRange(source.Skip(index * pageSize).Take(pageSize).ToList());
    }

    public PagedList(List<T> source, int index, int pageSize)
    {
        this.TotalCount = source.Count();
        this.PageSize = pageSize;
        this.PageIndex = index;
        this.AddRange(source.Skip(index * pageSize).Take(pageSize).ToList());
    }

    public PagedList()
    {
    }

    public int TotalCount
    {
        get;
        set;
    }

    public int PageIndex
    {
        get;
        set;
    }

    public int PageSize
    {
        get;
        set;
    }

    public bool IsPreviousPage
    {
        get
        {
            return (PageIndex > 0);
        }
    }

    public bool IsNextPage
    {
        get
        {
            return (PageIndex * PageSize) <= TotalCount;
        }
    }
}

Мой код сопоставления:

Mapper.CreateMap<User, UserModel>();
var model = Mapper.Map<PagedList<User>, PagedList<UserModel>>(users); // Not quite sure about this.

Когда я делаю выше, сопоставляется только список, другие свойства, такие как TotalCount, PageSize, не сопоставляются.

1 Ответ

0 голосов
/ 04 сентября 2011

Какое бы решение вы ни предложили, вам нужно будет перечислить ваш первоначальный список.Что вы могли бы сделать, это что-то вроде этого:

var modelList = new PagedList<UserModel>(
    userList.Select(u => Mapper.Map<User, UserModel>(u)).AsQueryable(), 
    index, pageSize);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...