C# 如何使用AutoMapper将集合从UserModel带到PatientModel?

C# 如何使用AutoMapper将集合从UserModel带到PatientModel?,c#,automapper,C#,Automapper,在我从数据库中获取数据之后,我需要将它从ModelUserModel带到ModelPatientModel。我是这样做的: var _patients = patients.Select(p => new MyPatientModel { Id = p.Id, PatientEmail = p.Email, PatientFirstName = p.FirstName, Pati

在我从数据库中获取数据之后,我需要将它从ModelUserModel带到ModelPatientModel。我是这样做的:

var _patients = patients.Select(p => new MyPatientModel
        {
            Id = p.Id,
            PatientEmail = p.Email,
            PatientFirstName = p.FirstName,
            PatientSecondName = p.SecondName,
            PatientThirdName = p.ThirdName,
        });
        return _patients;
但我需要使用AutoMapper完成同样的任务。我在启动时初始化了这些模型,以便:

config.CreateMap<MyPatientModel, User>();
config.CreateMap();
请帮助解决此问题

只需使用您的类型:

var config = new MapperConfiguration(
    cfg => cfg.CreateMap<Patient, MyPatientModel>()
    .ForMember(myP => myP.Id, opt => opt.MapFrom(p => p.Id))
    .ForMember(myP => myP.PatientEmail, opt => opt.MapFrom(p => p.Email))
    .ForMember(myP => myP.PatientFirstName, opt => opt.MapFrom(p => p.FirstName))
    .ForMember(myP => myP.PatientSecondName, opt => opt.MapFrom(p => p.SecondName))
    .ForMember(myP => myP.PatientThirdName, opt => opt.MapFrom(p => p.ThirdName))
    );

var mapper = config.CreateMapper();
List<MyPatientModel> myPatientList = mapper.Map<List<Patient>, List<MyPatientModel>>(patients);
var config=新的MapperConfiguration(
cfg=>cfg.CreateMap()
.ForMember(myP=>myP.Id,opt=>opt.MapFrom(p=>p.Id))
.ForMember(myP=>myP.PatientEmail,opt=>opt.MapFrom(p=>p.Email))
.ForMember(myP=>myP.PatientFirstName,opt=>opt.MapFrom(p=>p.FirstName))
.ForMember(myP=>myP.PatientSecondName,opt=>opt.MapFrom(p=>p.SecondName))
.ForMember(myP=>myP.PatientThirdName,opt=>opt.MapFrom(p=>p.ThirdName))
);
var mapper=config.CreateMapper();
列出myPatientList=mapper.Map(患者);

您可以将
MyPatientModel
属性重命名为
Email
而不是
PatientMail
FirstName
而不是
PatientFirstName
等,并且您不需要设置任何自定义映射配置。将所有
MyPatientModel
字段的前缀都加上
Patient
似乎是多余的,但我有错误映射类型。第一个参数必须是
IQueryable
,否则患者无法转换类型,第二个参数我尝试
列表>
IList>
ICollection>
,但在所有这些情况下,我都有一个错误映射类型。。。原因可能是什么?@sen根据automapper的说法,您不能使用iQuery作为来源。但这将是另一个问题。@senjust它也可能是其他地方的错误,但很难从你的例子中找到。您必须将所有内容都放入示例中,以便任何人都可以获取、运行它并看到错误。