相关疑难解决方法(0)

Automapper:使用ReverseMap()和ForMember()进行双向映射

我有这种情况,我想将实体映射到viewmodel并返回.我必须使用ForMember()显式指定映射,因为它们的属性不共享完全相同的名称.这是我的类看起来如何的简短示例:

public class PartTwo {
    public int Integer { get; set; }
}

public class PartTwoViewModel {
    public int PartInteger { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想用这种方式使用它们:

Mapper.CreateMap<PartTwo, PartTwoViewModel>()
    .ForMember(dst => dst.PartInteger, opt => opt.MapFrom(src => src.Integer))
    .ReverseMap();

var partTwoViewModel = new PartTwoViewModel() { PartInteger = 42 };
var partTwo = Mapper.Map<PartTwoViewModel, PartTwo>(partTwoViewModel);
Assert.AreEqual(partTwoViewModel.PartInteger, partTwo.Integer);
Run Code Online (Sandbox Code Playgroud)

但它与PartInteger属性不匹配.(整数为0.)

有没有办法让这项工作?(当两个类的属性具有相同的名称时.)我是否必须在方法ForMember()中设置某种选项?

.net bidirectional automapper

58
推荐指数
2
解决办法
4万
查看次数

我是否需要以两种方式创建automapper createmap?

这可能是一个愚蠢的问题!(n00b到AutoMapper和时间短!)

我想使用AutoMapper从EF4实体映射到ViewModel类.

1)如果我打电话

CreateMap<ModelClass, ViewModelClass>()
Run Code Online (Sandbox Code Playgroud)

然后我也需要打电话

CreateMap<ViewModelClass, ModelClass>()
Run Code Online (Sandbox Code Playgroud)

执行相反的操作?

2)如果两个类具有相同的属性名称,那么我是否需要一个CreateMap语句,或者这只是针对"特定/自定义"映射?

model viewmodel automapper asp.net-mvc-3

39
推荐指数
3
解决办法
1万
查看次数