我尝试从业务层中的EF实体传递到dto。
所以我设置了Automapper,一切顺利。
这是我的个人资料类:
public DocumentProfile()
{
CreateMap<Data.Models.Docflow.Package, PackageDto>()
.ForMember(dest => dest.ReceiverName, opt => opt.MapFrom(src => src.Receiver.FullName))
.ForMember(dest => dest.SenderName, opt => opt.MapFrom(src => src.Sender.FullName))
;
}
但我在我的代码的不同位置进行从Package到PackageDto的映射。我在不同情况下有不同的具体查询。所以我需要记住在所有查询中包含导航属性Receiver和Sender。
那么如何为Package实体填充单个查询以及某些投影的所有必要属性?
我看到了带有值解析器和类型转换器的示例,但似乎不合适。
答案 0 :(得分:0)
@ lucian-bargaoanu,感谢您的评论!
最后,我找到了两个合适的解决方案。
共享部分是:
我在存储库中准备了像 PackageDto Get(Guid packageId)这样的函数,并且我在dbquery中创建了映射到存储库中的dto,在BL中我只使用dto。
但区别在于:
无论如何,它是必要的设置配置文件,带有映射规则,但第二种方式显然正如它所执行的那样包括你需要的。