Я выполняю преобразование объектов-сущностей в свои собственные модели (CustomerModel и OrderModel).
В настоящее время у меня есть метод IQueryable, который возвращает моих клиентов:
IQueryable<CustomerModel> GetCustomers()
{
return from c in entities.Customers
select new CustomerModel {
CustomerId = c.CustomerId,
CustomerName = c.CustomerName
// Orders = ??
};
}
Inмоя CustomerModel, вы можете видеть, что у меня есть массив Orders.
class CustomerModel {
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public OrderModel[] Orders { get; set; }
}
class OrderModel {
public int OrderId { get; set; }
public int CustomerId { get; set; }
public string OrderDetails { get; set; }
}
Я не могу понять, как установить Orders внутри объекта Customer, когда тип Orders имеет тип Array.
Я смог сделать это, когда я изменил OrdersModel Orders на IEnumerable вместо массива, и вы не можете использовать .ToArray () с LINQ to Entities, поэтому я застрял.
Так что мой вопрос:Можно ли это сделать, используя массив для заказов?
Ответы на вопросы:
- Почему массив?Я возвращаю массив (для использования другими проектами) в другом месте, и было бы разумно, чтобы Orders были также массивом.
Кроме того, вы не можете использовать ToArray () дляЗаказы, эта ошибка выдается:
System.NotSupportedException: LINQ to Entities does not recognize the method 'Proj.Models.Orders[] ToArray[Orders](System.Collections.Generic.IEnumerable`1[Proj.Models.Orders])' method, and this method cannot be translated into a store expression.