У меня есть устаревшее приложение ASP.NET для веб-форм, которое использует ASP.NET GridView.
Есть класс [User], который представляет сущность из модели EF, а затем есть [UserDto].Все свойства в UserDto отображаются на класс User, кроме одного - RowCount.Это на самом деле не свойство, относящееся к самому пользователю, но в устаревшей реализации мы имеем общее количество строк, привязанное к каждому объекту пользователя в списке пользователей, чтобы показать правильный номер страницы в Gridview.
Итак, воткак выглядит мое сопоставление:
config.CreateMap<User, UserDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(u => u.UserId))
.ForMember(dest => dest.Username, opt => opt.MapFrom(u => u.UserName))
.ForMember(dest => dest.Usercode, opt => opt.MapFrom(u => u.UserCode))
.ForMember(dest => dest.FirstName, opt => opt.MapFrom(u => u.FirstName))
.ForMember(dest => dest.LastName, opt => opt.MapFrom(u => u.LastName))
.ForMember(dest => dest.Branch, opt => opt.MapFrom(u => u.Branch))
.ForMember(dest => dest.Groups, opt => opt.MapFrom(u => u.UserGroups))
.ForMember(dest => dest.AssignedUsers, opt => opt.MapFrom(u => u.User12.Select(s => s.FirstName + " " + s.LastName)));
Затем я получаю пользователей и сопоставляю их с DTO следующим образом:
var users = (from u in context.Users.Include("Branch")
where (u.FkBranchId == branchId || branchId == -1)
select u).ToList();
// get the total row count to support paging
var rowCount = users.Count;
var orderedList = CustomSort.GetSortedList(users, sortInfo.SortColumn, sortInfo.SortDirection).Skip(pageInfo.Skip).Take(pageInfo.PageSize).ToList();
return mapper.Map<List<EFModel.ClientData.User>, List<UserDto>>(orderedList);
Здесь я выкидываю ошибку, очевидно, потому что RowCountсобственность в моем DTO не отображается.Обратите внимание, что я хочу сопоставить его со свойством вне объекта пользователя, то есть счетчиком списка.
Как мне это сделать?