使用automapper将过滤器应用于集合

ste*_*e_c 18 collections ignore skip filter automapper

我有一个包含集合的域模型,我想使用AutoMapper将父节点和子节点映射到视图模型,但我不希望将被"软"删除的子节点移植.例如:

public class Customer {
   public EntitySet<Order> {get;set;}
}
public class Order {
   public DateTime? DeletedDate {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我的AutoMapper定义是

Mapper.CreateMap<Customer, CustomerViewModel>();
Mapper.CreateMap<Order, OrderViewModel>();
Run Code Online (Sandbox Code Playgroud)

我不希望Orders在视图模型中具有DeletedDate的值.

这可能在AutoMapper中吗?提前谢谢了,

史蒂夫.

ach*_*ekh 28

我遇到了类似的问题,最后类似下面的方法为我工作:

Mapper.CreateMap<Customer, CustomerViewModel>()
    .ForMember(dest => dest.Orders, 
        opt => opt.MapFrom(src => src.Orders.Where(o => !o.DeletedDate.HasValue)));
Run Code Online (Sandbox Code Playgroud)

这假设您的Customer实体和CustomerViewModel具有名为"Orders"的集合.

  • 如果我们需要添加一个变量,我们该怎么做?前任。`哪里(o=&gt;o.UserId==variableUserId)`? (2认同)