【发布时间】:2020-01-29 16:46:44
【问题描述】:
我有以下型号:
public class Device
{
public string DeviceId { get; set; }
public string DeviceName { get; set; }
private ICollection<TagDevice> _tagDevices;
public virtual ICollection<TagDevice> TagDevices { get => _tagDevices ?? (_tagDevices = new List<TagDevice>()); protected set => _tagDevices = value; }
}
public class Tag : BaseEntity
{
public string Name { get; set; }
private ICollection<TagDevice> _tagDevices;
public virtual ICollection<TagDevice> TagDevices { get => _tagDevices ?? (_tagDevices = new List<TagDevice>()); protected set => _tagDevices = value; }
}
public class TagDevice
{
public int TagId { get; set; }
public string DeviceId { get; set; }
public virtual Tag Tag { get; set; }
public virtual Device Device { get; set; }
}
我有 DTO 课程:
public class TagDisplayDto
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? UpdatedAt { get; set; }
public int TimesUsed { get; set; }
public int CarrierId { get; set; }
}
public class DeviceDisplayDto
{
public string DeviceId { get; set; }
public string DeviceName { get; set; }
public List<TagDisplayDto> Tags { get; set; }
}
现在,我想为 DeviceDisplayDto 创建带有标签的映射:
CreateMap<Device, DeviceDisplayDto>()
.ForMember(d => d.Tags, opt => opt.MapFrom(s => s.TagDevices...))
;
TagDevices 是集合而不是标签类型,集合的每个元素都有标签类型的属性。如何创建?
【问题讨论】:
标签: entity-framework entity-framework-core many-to-many automapper