任何人都可以告诉我哪里犯了错误吗?
public class DataModelProduct
{
public int Id {get;set;}
public string Name {get;set;}
public string Price {get;set;};
public string Brand {get;set;}
public string Color {get;set;}
public string Dimentions {get;set;}
public string Type {get;set;}
public string Network {get;set;}
}
public class Product
{
public int Id {get;set;}
public string Name {get;set;}
public string Price {get;set;}
public Specification Spec {get;set;}
}
public class Specification
{
public string Brand {get;set;}
public string Color {get;set;}
public string Dimentions {get;set;}
public string Type {get;set;}
public string Network {get;set;}
}
AutoMapper.Mapper.CreateMap< DataModelProduct, Product>();
AutoMapper.Mapper.CreateMap< DataModelProduct, Specification>();
您可以假设Product
类是核心模型,DataModelProduct
是数据库模型
映射Product
属性,但Specification
属性为空。
答案 0 :(得分:0)
您需要为AutoMapper提供所有属性访问器才能运行:
e.g。
public string Brand { get; set; }
public Specification Spec { get; set; }
你的映射初始化代码应该是
var config = new MapperConfiguration(cfg => {
cfg.CreateMap< DataModelProduct, Product>();
cfg.CreateMap< DataModelProduct, Specification>();
});
您的运行时代码如下:
var product = Mapper.Map(dataModelProduct, new Product());
映射到Specification
:
var product = Mapper.Map(dataModelProduct, new Product());
product.Specification = new Specification();
Mapper.Map(dataModelProduct, product.Specification);