所以我有2个对象,AlbumDto和AlbumMediaDto。
public class AlbumDto
{
public int AlbumId { get; set; }
public string Title { get; set; }
public DateTimeOffset? AlbumDate { get; set; }
public AlbumMediasDto Media { get; set; }// list of media
}
我在仓库中有一个方法可以返回专辑列表(每张专辑都有上面提到的属性,其中包括媒体列表)
var albumsForChild = await GetTenantRepository<IAlbumRepository>().GetAlbumsForChild(childId);
因此,我不确定如何使用AutoMapper将它们映射到这些Dto(我知道我总是可以使用嵌套的foreach并相应地填充所有内容,但是想学习如何正确地进行此操作)。
任何帮助表示赞赏!
答案 0 :(得分:1)
您可以使用JSon反序列化吗?如果是的话,下面是您的解决方案。
业务逻辑:
public IEnumerable<AlbumDto> GetAllAlbums()
{
var allAlbums = _theApiWrapper.ExecuteGet<IEnumerable<AlbumDto>>("theApiRoute");
return allAlbums;
}
存储库:
public T ExecuteGet<T>(string endpoint)
{
var uri = $"https://apiurl.company.com/api/v1/{endpoint}";
using (HttpClient client = new HttpClient())
{
var x = client.GetAsync(uri);
var result = x.Result.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<T>(
result,
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }
);
}
}