使用Automapper整理两个集合

时间:2011-01-29 00:30:31

标签: c# automapper

我正在寻找一种工具来自动将两个集合整理到一起,我认为Automapper应该为此工作。我们有很多这种操作的实例,我想把这个逻辑集中到一个区域。

我有以下两个类:

public class Product
{
    public IEnumerable<Order> CurrentCustomerOrders { get;set; }
}

public class Order
{
    order properties
}

通过以下调用检索它们:

_repo.GetTable<Product>();
_repo.GetTable<Order>().Where(n => n.CustomerId = _customerId);

我想要的是将所有订单放入产品或类似的东西:

Mapper.CreateMap<IEnumerable<Order>, IEnumerable<Product>>()
  .ForEachMember(n => n.CurrentCustomerOrders), opt => opt.MapFrom(p => p.Where(Order.ProductId == Product.ProductId))

我如何使用Automapper进行此操作?或者你知道一个更好的工具吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

通常你会先使用Linq或其他东西进行过滤,然后进行映射。 Automapper只是一个映射工具。

e.g。

Product.CurrentCustomerOrders = 
     Mapper.Map<OrderDO, Order>(Orders.Where(o => o.ProductId == Product.ProductId));