2010-04-14 45 views
6

Tôi đang cố gắng ánh xạ thuộc tính ReferralContract.AssessmentId đến Referral.Assessment.Id Đoạn mã dưới đây hoạt động nhưng tôi chắc chắn rằng có một cách làm sạch hơn .... cho tôi biết đây là quá ;-)AutoMapper Làm thế nào để ánh xạ đối tượng lồng nhau từ một ObjectId

// Destination classes 
public class Referral 
{ 
    public Referral() 
    { 
     Assessment = new Assessment(); 
    } 

    public int Id { get; set; } 
    public Assessment Assessment { get; set; } 
} 

public class Assessment 
{ 
    public int Id { get; set; } 
} 

// Source Class 
public class ReferralContract 
{ 
    public int Id { get; set; } 
    public int AssessmentId { get; set; } 
} 

việc lập bản đồ Automapper tôi đang sử dụng là

Mapper.CreateMap<ReferralContract, Referral>() 
     .ForMember(x => x.Assessment, 
      opt => opt.MapFrom(scr => new Assessment { Id = scr.AssessmentId })); 
+0

Tôi có một tình huống tương tự với một đối tượng DateTime.Date ánh xạ đến/từ một đối tượng.SubClass.Date giá trị ... Tôi nhận được một 'Không thể đúc đối tượng của loại' System.DateTime 'để loại' đối tượng. Lỗi SubClass 'nhưng đã cố gắng chính xác cùng một bản đồ init ... bất kỳ sugguestions? – beauXjames

Trả lời

3

Còn bây giờ, đó là cách sạch nhất để đi. Thiết kế của AutoMapper không được tối ưu hóa cho các kịch bản ánh xạ ngược này, nhưng đó là điều tôi đang tìm kiếm cho các phiên bản sau.

Các vấn đề liên quan