【发布时间】:2017-06-02 04:30:55
【问题描述】:
我正在尝试将我的Box 对象映射到我的BoxedElectrodesRowModel。
Box 对象有一个属性SerialNumbers,这些 中的每一个都有自己的SerialNumberName 属性。我正在尝试将 SerialNumberNames 列表映射到我的 BoxedElectrodeRowModel 中名为 SerialNumbers 的字符串列表。
AutoMapper 代码
c.CreateMap<Box, BoxedElectrodesRowModel>()
.ForMember(dest => dest.BoxId, opts => opts.MapFrom(src => src.BoxID))
.ForMember(dest => dest.SerialNumbers, opts => opts.MapFrom(src => src.SerialNumbers.Select(t => t.SerialNumberName).FirstOrDefault().ToList()))
.ForMember(dest => dest.DateCreated, opts => opts.MapFrom(src => src.DateCreated));
这是我现在遇到的错误。我不知道它指的是什么“字符”。
缺少从 System.Char 到 System.String 的映射。使用创建 Mapper.CreateMap
所有这些的目的是使用 DataTables 创建一个表,该表显示每个 Box 以及每行上的 SerialNumbers 列表,如果有帮助的话。一切都已编码,但运行时我不断收到上述错误。
编辑:这是我正在映射的类。我正在尝试将BoxId 映射到BoxId,将DateCreated 映射到DateCreated,并将每个SerialNumber(在列表中)的SerialNumberName 映射到SerialNumbers。
框(自动生成)
public partial class Box
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Box()
{
this.SerialNumbers = new HashSet<SerialNumber>();
}
public int BoxID { get; set; }
public System.DateTime DateCreated { get; set; }
public Nullable<System.DateTime> DateShipped { get; set; }
public string TrackingNumber { get; set; }
public Nullable<System.DateTime> DateReceived { get; set; }
public bool Active { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<SerialNumber> SerialNumbers { get; set; }
}
序列号(这是每个“盒子”的属性,也是自动生成的代码)
public partial class SerialNumber
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public SerialNumber()
{
this.Comments = new HashSet<Comment>();
this.WIPHistories = new HashSet<WIPHistory>();
}
public int SerialNumberID { get; set; }
public int IncomingLotID { get; set; }
public string SerialNumberName { get; set; }
public string LamPurchaseOrder { get; set; }
public string LamLineNumber { get; set; }
public bool Refurbished { get; set; }
public int WIPLocationID { get; set; }
public int StatusID { get; set; }
public int RouteSectionStepID { get; set; }
public Nullable<int> RejectCategoryID { get; set; }
public Nullable<int> BoxID { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Comment> Comments { get; set; }
public virtual IncomingLot IncomingLot { get; set; }
public virtual RejectCategory RejectCategory { get; set; }
public virtual Status Status { get; set; }
public virtual WIPLocation WIPLocation { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<WIPHistory> WIPHistories { get; set; }
public virtual Box Box { get; set; }
public virtual RouteSectionStep RouteSectionStep { get; set; }
}
BoxedElectrodesRowModel
public class BoxedElectrodesRowModel
{
public int BoxId { get; set; }
public List<string> SerialNumbers { get; set; } // change from List to ICollection if there are problems
public Nullable<System.DateTime> DateCreated { get; set; }
}
【问题讨论】:
-
您能否发布您的 Box 和 BoxedElectrodesRowModel 类的定义?在列表中显示您正在映射的属性
-
添加了我正在映射的类
标签: c# asp.net-mvc datatables automapper