0
我想這樣創建的映射:AutoMapper和條件映射爲null
如果源屬性有它的ID == 0,設置目標屬性設置爲null
如果源屬性有它的ID = 0,使用默認配置
例如該物業地圖:
Mapper.CreateMap<ItemViewModel, Item>()
.ForMember(x => x.DestinationArticle, o => o.SetNullIfSourceHasIdZero(x => x.SourceArticle));
個
的DestinationArticle和SourceArticle特性是實現的:
public interface IEntity
{
long Id { get; set }
}
我目前的解決辦法是這樣的:
.ForMember(x => x.DestinationArticle, o => o.MapFrom(x => x.SourceArticle != null && x.SourceArticle.Id != 0 ? Mapper.Map<Article>(x.SourceArticle) : null))
這也不是那麼好,而不是通用的。
那麼,有沒有什麼辦法可以創建,SetNullIfSourceHasIdZero擴展方法或某事之前提到的,這可能使我的生活更輕鬆?
這意味着我要創建我SetNullIfSourceHasIdZero對我所有的視圖模型類,但那種映射情景...... – cryss 2012-03-22 15:05:42
如何: '公類SetNullIfSourceHasIdZero:ValueResolver { 保護覆蓋ùResolveCore(T源) { /*邏輯* /} }' ,然後使用它利ke this: 'opt => opt.ResolveUsing >()' –
2014-11-20 08:33:31