在linqc#中使用GroupBy错误

本文关键字:GroupBy 错误 linqc# | 更新日期: 2023-09-27 18:17:47

我想只显示一次相同的列值,为此我使用linq GroupBy函数,但它给出编译时错误,我正在分享我的代码,请指导我,谢谢。

viewModel.TicketDetails = db.TicketDetails.OrderByDescending(c => c.TicketDetailId)
.Include(c => c.JunkPart).Include(c => c.Part).ToList()
.GroupBy(c => c.GenericOrderId).Select(c => c.FirstOrDefault());

错误是:

不能隐式转换类型"System.Collections.Generic"。IEnumerable'到' system . collections . generic . iccollection '。存在显式转换(您是否缺少强制类型转换?)

在linqc#中使用GroupBy错误

您的查询返回System.Collections.Generic.IEnumerable<Entities.TicketDetail>,但viewModel.TicketDetailsICollection<TiekctDetail>。错误信息告诉您。

用显式强制转换修复:

viewModel.TicketDetails = db.TicketDetails
    .OrderByDescending(c => c.TicketDetailId)
    .Include(c => c.JunkPart)
    .Include(c => c.Part).ToList()
    .GroupBy(c => c.GenericOrderId)
    .Select(c => c.FirstOrDefault())
    .ToList(); //<--- Add this
或者,您可以将viewModel.TicketDetails的类型更改为IEnumerable