首页 > 解决方案 > Net Core:用于在通用存储库中将 Id 映射到 ClassName+Id 的 Automapper

问题描述

我们有来自公司架构师的数据库、域层和通用存储库(不是我的选择)。

试图从员工数据库脚手架类映射到员工域类。如果所有类成员名称完全相同,则这是要映射的代码。

Mapper.CreateMap<EmployeeData, EmployeeDomain>();

但是,数据库类中的主键成员被命名为 Id(以适应通用存储库)。那么如何创建类的继承或新 AutoMapper 函数,并将 Id 映射到 Domain 中的 EmployeeId,同时映射其他成员?

以下是手动将 Id 映射到 Employee Id 的方法。我需要创建一个接受任何类(ProductId、SalesId、CustomerId 等)的函数,并将 id 映射到“ClassName”+ id,同时正确映射其他同名成员。

Mapper.CreateMap<EmployeeData, EmployeeDomain>()
    .ForMember(dest => dest.EmployeeId, opt => opt.MapFrom(src => src.Id))

理想情况下,函数应该能够接受其他 Automapper 函数,如 .ReverseMap 等

标签: c#class.net-coreautomapper

解决方案


推荐阅读