如何解决Automapper使用ProjectTo <>返回空对象
我是Automapper的新手,并试图将Entity Framework数据库对象映射到DTO。
我的数据库对象OfficeLookup
包含Code
和Description
(在其他我不关心的属性中)。
我的OfficeDto
包含Id
和Name
属性。
映射:
private MapperConfiguration OfficeMapperConfiguration =>
new MapperConfiguration(
cfg =>
{
cfg.CreateMap<OfficeLookup,OfficeDto>()
.ForMember(dest => dest.Id,act => act.MapFrom(src => src.Code))
.ForMember(dest => dest.Name,act => act.MapFrom(src => src.Description));
});
我的代码:
public IEnumerable<OfficeDto> GetOfficeDtos() => OfficeLookup.ProjectTo<OfficeDto>(OfficeMapperConfiguration); // returns an Ienumerable of empty OfficeDTOs
奇怪的是,对于另一个工作正常的表,我还有另一个更复杂的映射。我不明白为什么这张地图没有。
我的映射生成的表达式是
ObjectQuery<OfficeLookup>.MergeAs(MergeOption.AppendOnly).Select(dtoOfficeLookup => new OfficeDto())
看起来不正确。其他映射会生成一个表达式,该表达式可以正确设置各种属性(Office值除外。我假设一旦获得此独立映射,便可以修复嵌套映射)。
解决方法
问题应该出在相应的scipy.sparse.lil_matrix
属性上,更具体地说,是缺少属性设置器,在这种情况下,即使已明确映射了AutoMapper,AutoMapper还是从投影中跳过了它们。
例如该问题是通过以下类重现的:
OfficeDto
并添加属性设置器(甚至是私有的)可以解决此问题:
class OfficeDto
{
public int Id { get; }
public string Name { get; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。