使用AutoMapper

时间:2015-05-13 01:52:38

标签: automapper

我正在尝试创建一个数据存储库,我可以将其用于新兴汽车生产和设计公司的测试目的。

开始Automapper问题:

在这个项目中,我有2个类,它们大部分共享相同的属性。我不需要Id,所以我忽略了。

我现有的代码如下所示:

Mapper.CreateMap<RaceCar, ProductionCar>()

            .Ignore(d => d.fId)   //ignore the ID

            .ForMember(d=> d.ShowRoomName,

                               o=> o.MapFrom(s => s.FactoryName)   //different property names but same thing really

//combine into my new test car    
var testCarObject = Mapper.Map<RaceCar, ProductionCar>()

我的主要要求是: 1)我需要创建100个这些测试车对象 2)对于我使用的每个ProductionCar,它需要有一个相应的RaceCar,它们与名称相匹配(ShowRoomName&amp; FactoryName)

有没有办法在某种类型的循环或数组中坚持这一点,以便我可以创建所需的100?

另外,有没有办法确保每辆新车都有组合的FactoryCar和RaceCar?

谢谢!

1 个答案:

答案 0 :(得分:4)

将AutoMapper与AutoFixture结合使用:

var fixture = new Fixture();

var items = Enumerable.Range(1, 100)
    .Select(i => fixture.Create<RaceCar>())
    .Select(car => new { RaceCar = car, ProductionCar = Mapper.Map<RaceCar, ProductionCar>(car))
    .ToList();

items.Profit()