我一直在尝试使用 Automapper 将 ViewModel 类与下面列出的类进行映射:
public class Product
{
[Key]
public int ProductId { get; set; }
public string Name { get; set; }
public ICollection<Color> Color { get; set; }
}
public class Color
{
[Key]
public int id { get; set; }
public string value { get; set; }
public virtual ICollection<Product> products { get; set; }
}
public class ProductVM
{
[Key]
public int ProductId { get; set; }
public string Name { get; set; }
public List<int> Color { get; set; }
public IEnumerable<Color> Colors { get; set; }
}
使用颜色,我将所有可用颜色传递给视图供用户选择,并使用 Color 属性获取值,在视图中具有如下内容:
@Html.ListBoxFor(model => Model.Color, new MultiSelectList(Model.Colors, "id", "value"));
然后在一个控制器中,我有一个 Post 方法,可以保存它。我尝试使用 Automapper 转换类,但它无法映射 Color 属性,因为它应该通过可用的 id 获取 Color 对象。
Mapper.CreateMap<ProductVM, Product>();
Product product = AutoMapper.Mapper.Map<ProductVM, Product>(productVM);
db.Products.Add(product);
db.SaveChanges();
我错过了什么吗?