Я пытаюсь сопоставить свой объект Box
с моим BoxedElectrodesRowModel
.«Отсутствует карта от System.Char до System.String» Ошибка AutoMapper
Объект Box
имеет свойство SerialNumbers
, и каждый из тех имеет свою собственность SerialNumberName
. Я пытаюсь сопоставить этот список SerialNumberName
s со списком строк в моем 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));
Вот ошибка я получаю в настоящее время. Я не знаю, о каких «символах» это относится.
Missing map from System.Char to System.String. Create using Mapper.CreateMap
Целью всего этого является то, чтобы создать таблицу с помощью DataTables, который отображает каждый Box
со списком из его SerialNumbers
на каждой строке, если это помогает. Все закодировано, но я продолжаю получать вышеуказанную ошибку, когда она запускается.
Редактировать: Вот мои классы, которые я собираю. Я пытаюсь сопоставить BoxId
с BoxId
, DateCreated
до DateCreated
и SerialNumberName
от каждого SerialNumber
(в списке) до SerialNumbers
.
Box (автоматически созданное)
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; }
}
SerialNumber (Это свойство каждого 'окна', а также автоматически сгенерирован код)
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; }
}
Можете ли вы опубликовать определение вашего Бокса и классов BoxedElectrodesRowModel? В списке отображаются свойства, которые вы отображаете. –
. Добавлены классы, которые я сопоставляю. –