我有两个具有一对多关系的简单实体:
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属性是延迟加载的,我能以某种方式执行此操作吗? 我想要这样的东西:
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'
)。 / p>
这可以通过nHibernate实现吗?实体框架能做到吗?
答案 0 :(得分:1)
尝试NHibernate 3,linq支持比第二版好得多。否则,您可以使用标准语法提出请求。
答案 1 :(得分:1)
这可以通过nHibernate实现吗?实体框架能做到吗?
不幸的是没有。 NHibernate和EF无法处理这种情况。