Я DTO как это:Как проекция на лист с помощью AutoMapper
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; }
}
Когда я проекция Order
объект в OrderDTO
используя AutoMapper
return context.Orders
.Include(o => o.OrderItems.Select(oi => oi.Item))
.Where(o => o.OrderID == orderID)
.Project().To<OrderDTO>()
.SingleOrDefault();
Я получаю сообщение об ошибке:
LINQ to Entities does not recognize the method 'System.Collections.Generic.List
1[DTO.OrderItemDTO] ToList[OrderItemDTO](System.Collections.Generic.IEnumerable
1[DTO.OrderItemDTO])' method, and this method cannot be translated into a store expression.
Это мой переводчик:
Mapper.CreateMap<Order, OrderDTO>();
Mapper.CreateMap<OrderItem, OrderItemDTO>();
Если изменить List<OrderItemDTO>
к IEnumerable<OrderItemDTO>
, она работает, но мне нужно в List<OrderItemDTO>
, чтобы управлять содержимым списка.
Есть ли способ, как это решить?
Какую версию автопортрета вы используете? –
@YashveerSingh Я использую Automapper 3.3.1 – Willy