【发布时间】:2017-02-22 22:26:30
【问题描述】:
我必须喜欢这样:
public class OrderDTO
{
public Guid OrderID { get; set; }
public DateTime OrderDate { get; set; }
public List<OrderItemDTO> OrderItems
}
public class OrderItemDTO
{
public string ItemName { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
}
当我使用 AutoMapper 将 Order 实体投影到 OrderDTO 时
return context.Orders
.Include(o => o.OrderItems.Select(oi => oi.Item))
.Where(o => o.OrderID == orderID)
.Project().To<OrderDTO>()
.SingleOrDefault();
我收到了错误:
LINQ to Entities 无法识别该方法 'System.Collections.Generic.List
1[DTO.OrderItemDTO] ToList[OrderItemDTO](System.Collections.Generic.IEnumerable1[DTO.OrderItemDTO])' 方法,并且该方法不能翻译成商店表达式。
这是我的映射器:
Mapper.CreateMap<Order, OrderDTO>();
Mapper.CreateMap<OrderItem, OrderItemDTO>();
如果我将List<OrderItemDTO> 更改为IEnumerable<OrderItemDTO>,它可以工作,但我需要在List<OrderItemDTO> 中操作列表的内容。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
您使用的是哪个版本的自动映射器?
-
@YashveerSingh 我正在使用 Automapper 3.3.1
标签: c# entity-framework linq repository automapper