У меня есть две простые сущности с отношением один-ко-многим:
public class Customer
{
public int Id { get; private set; }
public IList<Order> Orders { get; private set; }
}
public class Order
{
public DateTime Date { get; set; }
}
Давайте представим, что может быть много заказов для конкретного клиента, и я хочу видеть только в прошлом месяце-orders.
Можно ли это как-то сделать, если свойство Orders загружено с отложенной загрузкой?Я хочу что-то вроде:
var orders = customer.Orders.Where(x => x.Date > DateTime.Now.AddMonths(-1)).ToList();
, но теперь nHibernate запрашивает все заказы в этой строке (SELECT * FROM Orders WHERE customerId='{0}'
), и к загруженным данным применяются ограничения linq, но я хочу, чтобы они применялись к SQL(SELECT * FROM Orders WHERE customerId='{0}' AND date > '2011-07-31'
).
Это достижимо с помощью nHibernate?Может ли Entity Framework сделать это?