Я должен получить записи из базы данных, последняя из которых OrderStatus
равна Registered
. Вот как я пытаюсь найти эти записи
List<Order> orders = db.Orders
.Include("OrderStatuses")
.Where(x => x.OrderStatuses.ToList().Last().Status == StatusOrder.Registered)
.ToList();
но я получаю исключение
LINQ to Entities не распознает метод
«Lomax.Models.OrderStatus
LastOrderStatus'
метод, и этот метод не может быть преобразован в выражение хранилища.
Есть ли способ не получить все Orders
сначала из db, а затем искать те, которые в последний раз OrderStatus
, которые я хочу? Или это не имеет значения (по скорости)?
Класс заказа:
public class Order
{
[Key]
public int ID { get; set; }
(...)
public virtual ICollection<OrderStatus> OrderStatuses { get; set; }
}
Класс OrderStatus:
public class OrderStatus
{
[Key]
public int ID { get; set; }
public DateTime Date { get; set; }
public Enumerates.StatusOrder Status { get; set; }
[ForeignKey("Order")]
public int OrderID { get; set; }
public virtual Order Order { get; set; }
}