Я использую ядро Asp.net, EF Core и Automapper.У меня есть много ко многим (вроде как в EF Core необходимо использовать для этого таблицу соединения), и у меня возникают проблемы с отображением дополнительного поля в таблице соединения в связанную коллекцию внутри DTO, которое я возвращаю.
Это мои сущности (сокращенно):
Сущность события:
public class Event
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<EventAttendee> Attendees { get; set; }
}
Сущность AppUser:
public class AppUser : IdentityUser<int>
{
public string PhotoUrl { get; set; }
public ICollection<EventAttendee> AttendingEvents { get; set; }
}
Сущность EventAttendee:
public class EventAttendee
{
public int AppUserId { get; set; }
public AppUser AppUser { get; set; }
public int EventId { get; set; }
public Event Event { get; set; }
public DateTime DateJoined { get; set; }
}
EventToReturnDto:
public class EventToReturnDto
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<AttendeeDto> Attendees { get; set; }
}
AttendeeDto:
public class AttendeeDto
{
public int Id { get; set; }
public string UserName { get; set; }
public DateTime DateJoined { get; set; }
}
Профиль Automapper:
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<AppUser, AttendeeDto>();
CreateMap<EventAttendee, AttendeeDto>();
CreateMap<Event, EventToReturnDto>()
.ForMember(dest => dest.Attendees,
opt => opt.MapFrom(x => x.Attendees.Select(y => y.AppUser).ToList()));
}
}
Запрос:
var events = await _context.Events
.Include(a => a.Attendees).ThenInclude(x => x.AppUser)
.OrderBy(e => e.Date)
.AsNoTracking()
.ToListAsync(cancellationToken);
var eventsToReturn = _mapper.Map<List<EventToReturnDto>>(events);
Это приводит кследующий вывод (я, по крайней мере, получаю информацию о пользователе), но я не могу понять, как получить свойство DateJoined из EventAttendee в коллекцию возвращенных посетителей и просто получить дату по умолчанию следующим образом:
{
"id": 2,
"title": "Event 2",
"attendees": [
{
"id": 4,
"userName": "Dave",
"dateJoined": "0001-01-01T00:00:00"
},
{
"id": 3,
"userName": "Jane",
"dateJoined": "0001-01-01T00:00:00"
}
]
},
Как мне создать отображение для вывода свойства DateJoined?
Спасибо, Джеймс