Работа на asp. Net Core 3.1.1 MVC + Angular Как правильно сопоставить мои классы с использованием AutoMapper? Я использую Data Transfer Object
Мои модели
public class Recipe
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<RecipePhoto> RecipePhotos {get; set;}
public User User { get; set; }
public int UserId { get; set; }
}
}
В рецепте есть фотографии
public class RecipePhoto
{
public int Id { get; set; }
public string Url { get; set; }
public bool IsMain { get; set; }
public string PublicId { get; set; }
public Recipe Recipe { get; set; }
public int RecipeId { get; set; }
}
}
RecipePhoto может быть основным фото
public class FavouriteRecipe
{
public int RecipeId { get; set; }
public Recipe Recipe { get; set; }
public int UserId { get; set; }
public User User { get; set; }
public DateTime DateLiked { get; set; }
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public ICollection<UserPhoto> UserPhotos {get; set;}
public ICollection<Recipe> Recipes {get; set;}
public ICollection<FavouriteRecipe> FavRecipes {get; set;}
}
} Dtos
public class FavouriteRecipeToReturn
{
public int RecipeId { get; set; }
public RecipeForListDto Recipe { get; set; }
public int UserId { get; set; }
public UserForListDto User { get; set; }
}
}
public class RecipeForListDto
{
public int Id { get; set; }
public string Name { get; set; }
public int PreparationTime { get; set; }
public string PhotoUrl { get; set; }
}
}
public class UserForListDto
{
public int Id { get; set; }
public string Username { get; set; }
public string PhotoUrl { get; set; }
public List<FavouriteRecipeToReturn> FavouriteRecipes {get; set;}
}
}
public class PhotoForReturnDto
{
public int Id { get; set; }
public string Url { get; set; }
public bool isMain { get; set; }
public string PublicId { get; set; }
}
}
Я создаю профиль
CreateMap<FavouriteRecipe, FavouriteRecipeToReturn>()
.ForMember(dest => dest.Recipe.Id, opt => opt
.MapFrom(src => src.Recipe))
.ForMember(dest => dest.User.Id, opt => opt
.MapFrom(src => src.Recipe));
Это ниже работает нормально
CreateMap<Recipe, RecipeForListDto>()
.ForMember(dest => dest.PhotoUrl, opt => opt
.MapFrom(src => src.RecipePhotos
.FirstOrDefault(p => p.IsMain).Url));
Что я пытаюсь получить это FavRecipes с фотографиями
В ответ у меня появляется ошибка