Основная проблема заключается в том, что у меня есть свойства в исходных родительских сущностях, которые мне нужно сопоставить с моими дочерними DTO назначения, когда дочерние сущности сопоставляются с дочерними DTO назначения.Дочерние объекты не имеют свойств навигации к своим родителям.Как вы можете видеть ниже, у родителя есть поле дочернего типа.В приведенном ниже коде вы можете видеть, что ParentSource имеет свойство с именем TitleImage типа ImageSource.Таким образом, связь является одним направленным.В моем коде я использую ImageSource везде.Существует как минимум 15 различных объектов со свойствами типа ImageSource.Я нормализовал свою базу данных.Сущность ImageSource не имеет координат X и Y, потому что только несколько, может быть, 5 из 30 мест действительно нуждаются в этих дополнительных значениях.В тех немногих местах я добавил X и Y на родительском элементе, как вы видите на классе ParentSource с помощью TitleImageX и TitleImageY.
Я мог бы легко делать то, что я хочу, с помощью цикла, и это то, чем я являюсьделаю сейчас, но я бы хотел использовать Automapper для этого, если бы мог.Это было бы намного меньше кода.
Вот мои классы:
public class ParentSource
{
public string Id { get; set; }
public string Name { get; set; }
public ImageSource HomeImage { get; set; }
public ImageSource TitleImage { get; set; }
//These should be copied to the child object
public int TitleImageX { get; set; }
public int TitleImageY { get; set; }
}
public class ParentDest
{
public string ParentId { get; set; }
public string DisplayName { get; set; }
public ImageDest HomeImage { get; set; }
public ImageDest TitleImage { get; set; }
}
public class ImageSource
{
public string Id { get; set; }
public string Url { get; set; }
public decimal Height { get; set; }
public decimal Width { get; set; }
}
public class ImageDest
{
public string ImageId { get; set; }
public string ImageUrl { get; set; }
public decimal Height { get; set; }
public decimal Width { get; set; }
//Not all images have Coordinate
public decimal XCoordinate { get; set; }
public decimal YCoordinate { get; set; }
}
Вот то, что у меня есть для создания отображений.Я не знаю, как скопировать координаты X & Y от родителя к ребенку.
CreateMap<ParentSource, ParentDest>()
.ForMember(
dest => dest.ParentId,
opt => opt.MapFrom(src => src.Id))
.ForMember(
dest => dest.DisplayName,
opt => opt.MapFrom(src => src.Name));
CreateMap<ImageSource, ImageDest>()
.ForMember(
dest => dest.ImageId,
opt => opt.MapFrom(src => src.Id))
.ForMember(
dest => dest.ImageUrl,
opt => opt.MapFrom(src => src.Url));
Спасибо за ваше время и помощь.