РЕДАКТИРОВАТЬ: Я понял это:
CreateMap<MyParentDto, MyDomainObject>();
CreateMap<ChildObjectDto, MyDomainObject>()
.ForMember(s => s.ChildText, opt => opt.MapFrom(a => a.ChildText))
.ForMember(s => s.ChildNumber, opt => opt.MapFrom(a => a.ChildNumber));
CreateMap<MyDomainObject, ChildObjectDto>();
CreateMap<MyDomainObject, MyParentDto>()
.ForMember(d => d.ChildObject, opt => opt.MapFrom(s => s));
Я пытаюсь сопоставить DTO с дочерним объектом для одного класса домена, но яне уверен, что это вообще можно сделать.
Я работаю с EF Core 2.0, Code First в .NET WepApi.
Допустим, у меня есть следующие классы:
// Domain objects
[Table("foo", Schema = "bar")]
public partial class MyDomainObject
{
public string SomeText { get; set; }
public int SomeNumber { get; set; }
public string ChildText { get; set: }
public int ChildNumber { get; set; }
}
// DTOs
public class MyParentDto
{
public string SomeText{ get; set; }
public int SomeNumber { get; set; }
public ChildObjectDto ChildObject { get; set: }
}
public class ChildObjectDto
{
public string ChildText { get; set: }
public int ChildNumber { get; set; }
}
Можно ли использовать AutoMapper для сопоставления этого, чтобы я мог делать запросы с таким телом JSON, как это?
{
"SomeText": "string",
"SomeNumber": "int",
"ChildObject": {
"ChildText": "string",
"ChildNumber": "int",
}
}
Я, честно говоря, не уверен, если эточто-то, что можно сделать, но я должен был следовать этому подходу (DTO с дочерним объектом и одной таблицей). Какие у вас есть предложения? Большое спасибо!