Ленивые загрузки коллекций с ограничениями в nHibernate - PullRequest
1 голос
/ 31 августа 2011

У меня есть две простые сущности с отношением один-ко-многим:

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 сделать это?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Это достижимо с помощью nHibernate?Может ли Entity Framework сделать это?

К сожалению, нет.NHibernate и EF не могут справиться с этой ситуацией.

1 голос
/ 31 августа 2011

Попробуйте NHibernate 3, поддержка linq там намного лучше, чем во 2-й версии.В противном случае вы можете сделать запрос, используя синтаксис критериев.

...