【发布时间】:2022-01-14 22:29:56
【问题描述】:
我正在尝试将数据分配给一个类,但是在执行该方法时它向我显示错误:
Unable to cast object of type 'System.Collections.Generic.List to type 'System.Collections.Generic.ICollection
我正在做的程序如下:
我有 TicketData 类,它的字段中有一个 Message 类的 ICollection。
public partial class TicketData
{
public int IdTicket { get; set; }
public int? IdUser { get; set; }
public ICollection<Message> Message { get; set; }
}
要将值分配给 TicketData 类,我获取 Ticket 和 Message 类的值。
public class Ticket
{
public int IdTicket { get; set; }
public int? IdUser { get; set; }
}
public class Message
{
public int IdTicket { get; set; }
public int? IdMessage { get; set; }
public string Text { get; set; }
}
我用以下方法做到这一点:
var detail = await _unitOfWork.TicketsRepository.GetDetailsTicketRepository(Id);
var messageService = await _unitOfWork.MessageRepository.GetMessagesTicketRepository(Id);
List<VMessages> listMessages = messageService.ToList();
VMessages 内部与 Message 类相同。
然后我手动分配值:
var TData = new TicketData()
{
IdTicket = detail.IdTicket,
IdUser = detail.IdUser,
Message = (ICollection<Message>)listMessages
};
但这就是它向我显示上述错误的地方。如果我只分配 IdTicket 和 IdUser 的值,它可以正常工作,但是当我将 listMessages 分配给 Message 时,它会显示错误。
请你告诉我我哪里失败了,谢谢。
【问题讨论】:
-
(如果 VMessages 和 Message 是某种模型/视图模型对,享受从一个到另一个的简单映射,我想说这些天的典型路线是使用一些软件,如 automapper 来映射从一个到另一个)