nHibernate Коллекция Count - PullRequest
       14

nHibernate Коллекция Count

5 голосов
/ 18 ноября 2009

У меня есть следующая модель, которую я создал и сопоставил с помощью nHibernate. Используя ленивую загрузку, мне не нужно получать Транспорт для Дилера в начале.

Public class Dealer
{
public virtual string Name { get;set;}
public virtual IList<Vehicles> Vehicles { get;set;}
}

Теперь давайте предположим, что у дилера тысячи автомобилей.

Если я сделаю Dealer.Vehicles.Count, тогда NH выберет и извлечет все данные.

Как лучше всего просто подсчитать? Есть ли способ, которым я могу получить счет без объявления нового свойства дилераCount в пределах класса дилеров?

Также в Hibernate есть функция, которая, я думаю, будет реализована в более новой версии NH, называемой Extra Lazy Loading. Решит ли это проблему?

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

дополнительная отложенная загрузка выдаст sql вместо заполнения коллекции для определенных операций, таких как Count или Contains. В беглых отображениях его используют как:

HasMany(x => x.CollectionProperty).ExtraLazyLoad();

или HBM

<one-to-many lazy="extra" ...

Это полезно только в том случае, если у вас большие коллекции и вам нужно специальное поведение.

0 голосов
/ 18 ноября 2009

Использовать проекцию счета (Projection.RowCount)

...