这是我用于Automapper的两个类
class A {
Guid id,
int a,
int b,
int c
}
class B {
Guid id,
int a,
int b,
int c,
int d
}
我正在通过映射以上类之一来创建列表 这是代码:
AList = Mapper.Map<List<B>, List<A>>(item);
但是我面临的问题是属性Guid id
在列表中每次都必须是唯一的,即在列表的每个对象中属性Guid.NewGuid()
都应该是唯一的。但是,一旦将其自动映射,我应该如何访问它并进行更改。我避免使用foreach
,因为这是我选择AutoMapper
答案 0 :(得分:1)
听起来您想要的是将A映射到B,但给B一个新的Guid作为id。该代码应该可以工作:
var a = new A() { id = Guid.NewGuid(), a = 1, b = 2, c = 3 };
Mapper.Initialize(cfg =>
cfg.CreateMap<A, B>()
.ForMember(d => d.id, o => o.UseValue(Guid.NewGuid()))
);
var b = Mapper.Map<B>(a);
该映射配置告诉AutoMapper每次将b.id
映射到A
时都为B
使用新的Guid。
编辑:如果您在调试器中逐步完成此操作,则会看到两个对象的属性a
,b
和{{ 1}},但c
属性的指南不同。