2013-11-28 30 views
6

Tôi đang cố bỏ qua thuộc tính từ loại nguồn. Tôi đã xác định lập bản đồ như thế này: tínhBỏ qua AutoMapper() không hoạt động khi sử dụng ForSourceMember?

var map = AutoMapper.Mapper.CreateMap<Article, IArticle>(); 
map.ForSourceMember(s => s.DateCreated, opt => opt.Ignore()); 
map.ForSourceMember(s => s.DateUpdated, opt => opt.Ignore()); 

Khi tôi gọi đồ chức năng,

AutoMapper.Mapper.Map(article, articlePoco); 

đích được cập nhật anyway. Tôi đang sử dụng phiên bản ổn định mới nhất được tải xuống từ NuGet.

Bất kỳ ý tưởng nào tại sao tính năng này không hoạt động?

Tôi đã tìm thấy câu hỏi tương tự với câu hỏi này nhưng không có câu trả lời nào được đính kèm. [Câu hỏi]: AutoMapper's Ignore() not working?

Trả lời

6

Thay đổi bản đồ để sử dụng ForMember:

map.ForMember(s => s.DateCreated, opt => opt.Ignore()); 
map.ForMember(s => s.DateUpdated, opt => opt.Ignore()); 
+2

Có mà đã làm các trick, nhưng đối với tôi đó là một chút lạ để thiết lập lờ trên thành viên đến khi thực hiện việc lập bản đồ vì tôi thực sự bỏ qua dữ liệu trong nguồn không phải đích. – khorvat

+0

Tôi cũng phạm sai lầm tương tự. Tôi đổ lỗi cho tài liệu của AutoMapper. Nó không được viết cho người mới bắt đầu đó là chắc chắn. Bằng cách nào đó sau khi đọc wiki và googling, tôi không thể có được một câu trả lời dứt khoát. Cho đến bây giờ. – iphone007

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