Tôi cần trợ giúp với ánh xạ đặc biệt với AutoMapper. Tôi muốn ánh xạ một tập hợp các đối tượng vào một tập hợp các chuỗi.AutoMapper: Lập bản đồ bộ sưu tập của đối tượng đến một tập hợp các chuỗi
Vì vậy, tôi có một Tag ClassD
public class Tag
{
public Guid Id { get; set; }
public string Name {get; set; }
}
hơn trong một mô hình tôi có một IList của lớp này. Bây giờ tôi muốn ánh xạ tên của một tập hợp các chuỗi.
Thats làm thế nào tôi xác định quy tắc lập bản đồ:
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Và đây là ValueResolver tôi:
protected override string ResolveCore(Tag source)
{
return source.Name;
}
Nhưng u biết .. nó không làm việc ;-) Vì vậy, có lẽ ai đó biết làm thế nào để làm nó đúng và có thể giúp tôi.
thx rất nhiều
Jan
Sooo .. u muốn biết thêm chi tiết .. u ở đây có được nó .. nhưng tôi có rút ngắn nó;)
Vì vậy, Model:
public class Artocle
{
public Guid Id { get; set; }
public string Title {get; set; }
public string Text { get; set; }
public IList<Tag> Tags { get; set; }
}
Và mô hình Thẻ u có thể thấy ở trên.
Tôi muốn ánh xạ nó tới một ArticleView ... tôi chỉ cần mô hình thẻ cho một số ngữ cảnh kinh doanh, không phải cho đầu ra tthe.
Vì vậy, đây là ViewModel tôi cần để ánh xạ:
public class ArticleView
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public IList<string> Tags { get; set; } // The mapping problem :-)
}
Vì vậy, tôi có một bootstrapper cho ánh xạ. Lập bản đồ của tôi trông như thế này:
Mapper.CreateMap<Article, ArticleView>()
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Và tôi đồ nó manuelly với một phương pháp đặc biệt
public static ArticleView ConvertToArticleView(this Article article)
{
return Mapper.Map<Article, ArticleView>(article);
}
Bạn có thể cung cấp thêm thông tin về các lớp nguồn và đích không? –
Vì vậy, thats tất cả tôi làm :) Tôi hy vọng phiên bản của tôi có thể giúp :) – Smokefoot