Tôi có một đối tượng Foo gen'd với EF, nó có một tài sản chuyển hướng của Bar đó là một đến nhiều, nhưng nên có được một. Dù sao, khi tôi truy vấn cho một Foo tôi cũng muốn có được mục đầu tiên và duy nhất từ bộ sưu tập Bar và lập bản đồ này cho một phẳng ra Biz Dto, làm thế nào tôi sẽ đi về làm điều đó?Làm thế nào để ánh xạ mục đầu tiên trong một bộ sưu tập với AutoMapper
var result = (from c in ctx.Foo
where c.Bar.Any(cs => cs.LOGINNAME == username && cs.PASSWORD == password)
select c).First();
Sau đó, trong Cấu hình AutoMapper tôi sẽ tạo bản đồ giống như ????
Mapper.CreateMap<Foo, Biz>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.CLIENTID))
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Bar.FirstOrDefault???))
Cảm ơn bạn, Stephen
Các cuộc gọi CreateMap của bạn trông chính xác. Họ không làm việc cho bạn? – PatrickSteele
@PatrickSteele Bạn có chắc chắn điều này được cho phép không? opt.MapFrom (src => src.Bar.FirstOrDefault ???) –
Rõ ràng, bạn cần dọn sạch cú pháp, nhưng có, bạn được phép xác định ánh xạ tùy chỉnh trên cơ sở từng trường: opt.MapFrom (s => s.Bar.FirstOrDefault()); – PatrickSteele