2010-03-03 40 views

Trả lời

310

Sử dụng quá tải mà mất đích có sẵn:

Mapper.Map<Source, Destination>(source, destination); 

Vâng, nó trả về đối tượng đích, nhưng đó chỉ là đối với một số tình huống khó hiểu khác. Đó là cùng một đối tượng.

+15

Cảm ơn, Jimmy ... Tôi cố tránh xa AutoMapper vì tôi rất sợ đường cong học tập ảnh hưởng đến lịch trình của tôi. Tôi chính thức xin lỗi tôi đã ở lại quá lâu ... nó dễ dàng hơn nhiều so với tôi nghĩ ban đầu. –

+6

Automapper phải là một trong những thư viện hữu ích nhất trên mạng. Tôi cũng tránh nó trong một thời gian dài, quá lâu. Tôi bắt đầu sử dụng nó ngày hôm nay và tôi rất ngạc nhiên về cách sử dụng dễ dàng. – mcottingham

+3

Không hoạt động cho tôi. Tôi cố gắng ánh xạ tới cùng một loại, nhưng nó trả về đối tượng mới. Người dùng u1, u3 = Người dùng mới(); u1 = Người dùng mới { Id = 1, NickName = "vami" }; Người dùng u4 = Mapper.Map (u1, u3); Assert.AreEqual (u1.Id, u3.Id); Assert.AreEqual (u1.NickName, u3.NickName); –

10

Để thực hiện công việc này, bạn phải tạo Bản đồ cho các loại nguồn và đích ngay cả khi chúng cùng loại. Điều đó có nghĩa nếu bạn muốn Mapper.Map<User, User>(user1, user2); Bạn cần phải tạo bản đồ như thế này Mapper.Create<User, User>()

+0

Ha! Tôi vừa tìm thấy và thêm một bình luận vào câu trả lời được chấp nhận. IMHO câu trả lời được chấp nhận mà không có lời giải thích của bạn chưa hoàn thành nhưng sau khi nhận xét của tôi có thể là, cuối cùng :) –

+0

Đây là một bổ sung tuyệt vời. Tuy nhiên, câu hỏi ban đầu đã không đề cập đến các loại nguồn và đích, và không yêu cầu chúng phải cùng loại. – jpaugh

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