9

Tôi đã đọc trên AutoMapper vì một câu trả lời cho một trong các câu hỏi trước đây của tôi here.

Nó nói rằng AutoMapper làm phẳng các mô hình miền phức tạp, nhưng tôi cần cái gì đó ngược lại. Tôi cần kết nối các mô hình khung nhìn của tôi (các mô hình miền phẳng) với các mô hình miền phức tạp để tôi có thể nhanh chóng chuyển đổi mô hình khung nhìn thành một mô hình miền.

Có điều gì tương tự với AutoMapper có mô hình xem và biến nó thành một mô hình miền phức tạp không?AutoMapper làm phẳng mô hình miền nhưng nó có làm ngược lại không? Nếu không, thì sao?

+0

bạn có thể làm điều đó với các ValueInjecter http://valueinjecter.codeplex.com/ – Omu

Trả lời

1

Không thực sự, bởi vì nó sẽ phải cực kỳ thông thường để có ích. Thật dễ dàng để phân biệt các mô hình khi làm phẳng, nhưng cách khác 'tròn ... chỉ là quá nhiều logic tùy chỉnh.

+2

ValueInjecter làm nó http://valueinjecter.codeplex.com/ – Omu

+0

không chỉ vậy, nhưng có vẻ như bản đồ hai chiều là một thực tế có vấn đề: http://lostechies.com/jimmybogard/2009/09/18/the-case-for -two-way-mapping-in-automapper /. – gabe

4

Bạn làm !. Bạn tạo ra một phương thức MapToModel, nơi bạn làm việc viết tay phải/trái và đồng bộ hóa cả hai.

public MyModel MapToModel(MyViewModelForm vmf) 
{ 
    //new up MyModel model; 
    model.foo = vmf.foo; 

    return model; 
} 

Nếu ứng dụng mã hóa chính xác, chúng ta sẽ làm gì để kiếm sống ...?

+2

ứng dụng tự mã hóa :) – Omu

2

các ValueInjecter hiện nó, và nó khá dễ sử dụng:

//flatenning 
personDto.InjectFrom<FlatValueInjection>(person); 

//unflattening 
person.InjectFrom<UnflatValueInjection>(personDto); 

//this is just mapping without flattening/unflattening 
foo.InjectFrom(bar) 
Các vấn đề liên quan