第一次使用AutoMapper,我很难搞清楚如何使用它.我正在尝试将ViewModel映射到我的数据库表.
我的ViewModel看起来像这样......
public class AddressEditViewModel
{
public AddressEdit GetOneAddressByDistrictGuid { get; private set; }
public IEnumerable<ZipCodeFind> GetZipCodes { get; private set; }
public AddressEditViewModel(AddressEdit editAddress, IEnumerable<ZipCodeFind> Zips)
{
this.GetOneAddressByDistrictGuid = editAddress;
this.GetZipCodes = Zips;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图使用的映射是......
CreateMap<Address, AddressEditViewModel>();
Run Code Online (Sandbox Code Playgroud)
当我运行这个测试时......
public void Should_map_dtos()
{
AutoMapperConfiguration.Configure();
Mapper.AssertConfigurationIsValid();
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误......
AutoMapper.AutoMapperConfigurationException:未映射JCIMS_MVC2.DomainModel.ViewModels.AddressEditViewModel上的以下2个属性:GetOneAddressByDistrictGuid GetZipCodes在JCIMS_MVC2.DomainModel.Address上添加自定义映射表达式,忽略或重命名该属性.
我不确定我应该如何映射这两个属性.我会很感激任何方向.谢谢
标记
好的,我可以看到你正在做的一些事情可能无济于事.
首先,此AutoMapper用于将一个对象中的Properties复制到diff对象中的Properties.在此过程中,它可能会询问或操纵它们以使最终结果viewmodel处于正确的状态.
使用AutoMapper时不再需要使用参数化构造函数 - 因为您直接从一个对象转换为另一个对象.参数化构造函数主要用于显示此对象明确要求的内容.
CreateMap<Address, AddressEditViewModel>()
.ForMember( x => x.GetOneAddressByDistrictGuid ,
o => o.MapFrom( m => m."GetOneAddressByDistrictGuid") )
.ForMember( x => x.GetZipCodes,
o => o.MapFrom( m => m."GetZipCodes" ) );
Run Code Online (Sandbox Code Playgroud)Automapper真正适合的是从DataObjects复制到POCO对象或View Model对象.
public class AddressViewModel
{
public string FullAddress{get;set;}
}
public class Address
{
public string Street{get;set;}
public string Suburb{get;set;}
public string City{get;set;}
}
CreateMap<Address, AddressViewModel>()
.ForMember( x => x.FullAddress,
o => o.MapFrom( m => String.Format("{0},{1},{2}"), m.Street, m.Suburb, m.City ) );
Address address = new Address(){
Street = "My Street";
Suburb= "My Suburb";
City= "My City";
};
AddressViewModel addressViewModel = Mapper.Map(address, Address, AddressViewModel);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9744 次 |
| 最近记录: |