由于对我之前的一个问题here的回应,我一直在阅读AutoMapper。
它说AutoMapper会使复杂的域模型变得平坦,但我需要做的事情相反的。我需要将我的视图模型(展平的域模型)连接到复杂的域模型,以便我可以快速将视图模型转换为域模型。
是否有类似于AutoMapper的视图模型并使其成为一个复杂的领域模型?
答案 0 :(得分:4)
你这样做!您可以创建一个MapToModel方法,在其中进行右手/左手编码并将两者同步。
public MyModel MapToModel(MyViewModelForm vmf)
{
//new up MyModel model;
model.foo = vmf.foo;
return model;
}
如果应用程序自己编码,那么我们究竟要做些什么......?
答案 1 :(得分:2)
ValueInjecter做到了,它很容易使用:
//flatenning
personDto.InjectFrom<FlatValueInjection>(person);
//unflattening
person.InjectFrom<UnflatValueInjection>(personDto);
和
//this is just mapping without flattening/unflattening
foo.InjectFrom(bar)
答案 2 :(得分:1)
不是真的,因为它必须非常传统才有用。在扁平化时很容易识别模式,但另一种方式是'圆形......太多的自定义逻辑。