这可能是一个愚蠢的问题!(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语句,或者这只是针对"特定/自定义"映射?
使用Automapper我创建一个简单的地图:
Mapper.CreateMap<MyCustomerDTO, YourCustomerDTO>()
Run Code Online (Sandbox Code Playgroud)
我经常需要走另一条路.我是否还需要以其他方式创建映射,或者Automapper是否会根据上述映射推断它?
Mapper.CreateMap<YourCustomerDTO, MyCustomerDTO>() //Needed?
Run Code Online (Sandbox Code Playgroud) TL;DR:我在使用多态映射时遇到了麻烦。我制作了一个带有测试套件的 github repo 来说明我的问题。请在这里找到它:链接到回购
我正在努力实现保存/加载功能。为了实现这一点,我需要确保我正在序列化的域模型以序列化友好的方式表示。为了实现这一点,我创建了一组 DTO,其中包含执行有意义的保存或加载所需的最低限度的信息集。
域的类似内容:
public interface IDomainType
{
int Prop0 { get; set; }
}
public class DomainType1 : IDomainType
{
public int Prop1 { get; set; }
public int Prop0 { get; set; }
}
public class DomainType2 : IDomainType
{
public int Prop2 { get; set; }
public int Prop0 { get; set; }
}
public class DomainCollection
{
public IEnumerable<IDomainType> Entries { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...对于 DTO
public interface IDto
{
int …Run Code Online (Sandbox Code Playgroud)