Я много пробовал, но не могу найти то, что действительно ищу. Это мой случай: у меня есть сущность EF-Core с навигационными свойствами и viewModel:
public class SomeEntity
{
public Guid Id { get; set; }
public virtual NestedObject NestedObject { get; set; }
public DateTime Created { get; set; }
public DateTime Modified { get; set; }
}
public class SomeEntityViewModel
{
public Guid Id { get; set; }
public string NestedObjectStringValue { get; set; }
public int NestedValueIntValue { get; set; }
}
Это мой CreateMap, который создает новый NestedObject, даже если NestedObject-Property не установлен (Условие некажется, что это применимо и здесь):
CreateMap<SomeEntityViewModel, SomeEntity>(MemberList.Source)
.ForPath(m => m.NestedObject.StringValue, opt =>
{
opt.Condition(s => s.Destination.NestedObject != null);
opt.MapFrom(m => m.NestedObjectStringValue);
});
Это позволяет избежать создания нового NestedObject, если свойства имеют нулевое значение, но если нет, свойства NestedObject не отображаются:
CreateMap<SomeEntityViewModel, SomeEntity>(MemberList.Source)
.ForMember(m => m.NestedObject, opt => opt.AllowNull());
Второй CreateMap не выполняет• Сопоставьте NestedObject-Properties, если они установлены, сначала создайте новый NestedObject, если Properties не установлены. Но оба вместе не работают. Есть идеи как это решить?