自动映射 - 根据谓词

时间:2015-09-09 10:21:16

标签: c# automapper

我有深层嵌套的集合,它们都实现了一个接口:

public ICmsAware
{
    DateTime? InactiveDate { get; set; }
}

所以具体的类看起来像:

public class Parent : ICmsAware
{
    public List<Child> Children { get; set; }

    public DateTime? InactiveDate { get; set; }
}

public class Child : ICmsAware
{
    public List<GrandChild> GrandChildren { get; set; }

    public DateTime? InactiveDate { get; set; }
}

public class GrandChild : ICmsAware
{
    public DateTime? InactiveDate { get; set; }
}

我想用automapper做的是在每个映射上使用扩展方法来忽略InactiveDate.HasValue == true

中的任何ICmsAware实体

e.g。

Mapper.CreateMap<Parent, ParentViewModel>().IgnoreInactiveItem();
Mapper.CreateMap<Child, ChildViewModel>().IgnoreInactiveItem();
Mapper.CreateMap<GrandChild, GrandChildViewModel>().IgnoreInactiveItem();

我发现的任何与此场景远程相似的例子都忽略了实体的属性,而不是整个实体本身。

0 个答案:

没有答案