Мой метод возвращает только одно изображение, когда есть два изображения для объекта - PullRequest
1 голос
/ 25 марта 2019

У меня есть право собственности. Каждое свойство может иметь несколько изображений. У меня есть метод, который извлекает данные свойств, а также изображения, но при тестировании API в post man возвращается только одно изображение.

Это интерфейс

IPropertyRepository:

Task<Property> GetProperty(int id);

Хранилище свойств:

public async Task<Property> GetProperty(int id)
{
   var property = await _context.Property.Include(ph => ph.Photos)
                .FirstOrDefaultAsync(p => p.Id == id);

   return property;
}

PropertyController:

[HttpGet("{id}", Name = "GetProperty")]
public async Task<IActionResult> GetProperty(int id)
{
    var property = await _repo.GetProperty(id);

    var propertyToReturn = _mapper.Map<PropertyForDetailedDto>(property);

    return Ok(property);
}

Это класс объекта DataTransferObject, который используется выше.

public class PropertyForDetailedDto
{
    public int Id { get; set; }
    public string Town { get; set; }
    public string County { get; set; }
    public string Address { get; set; 
    public int UserId {get; set; }
    public ICollection<Photo> Photos { get; set; }
}

Есть идеи здесь?

AutoMapper

public class AutoMapperProfiles : Profile
    {
        public AutoMapperProfiles()
        {
            CreateMap<UserForRegisterDto, User>();
            CreateMap<PropertyForCreateDto, Property>();
            CreateMap<PropertyToReturnDto, Property>();
            CreateMap<PhotoForCreationDto, Photo>();
            CreateMap<PropertyToReturnDto, Property>();
        }

1 Ответ

0 голосов
/ 25 марта 2019

Я решил свою проблему.

В моем PropertyForDetailedDto мне пришлось включить еще одно DTO для фотографий в отличие от модели.

public ICollection<PhotosForDetailedDto> Photos { get; set;}


public ICollection<Photo> Photos { get; set; }

Далее мне пришлось сопоставить обаPropertyForDetailedDto и выше PhotoForDetailedDto

CreateMap<PropertyForDetailedDto, Property>();
CreateMap<Photo, PhotosForDetailedDto>();

Я знаю правильное свойство, а также все соответствующие, которые принадлежат возвращаемому свойству.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...