nHibernate Collection Count

家住魔仙堡 提交于 2019-12-10 15:11:07

问题


I have the following model which I have created and mapped with nHibernate. Using lazy loading so I don't need to get the Vehicles for the Dealer at the start.

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

Now let's assume the Dealer has thousands of vehicles.

If I do Dealer.Vehicles.Count then NH will select and pull all the data.

What is the best way to simply get a count? Is there any way in which I can get a count with out declaring A new property dealerCount within the Dealer Class?

Also there is a feature in Hibernate which I believe will be implemented in a newer version of NH called Extra Lazy Loading. Would this solve the problem?


回答1:


extra lazy loading would issue sql instead of populating the collection for certain operations such as Count or Contains. In fluent mappings its used as:

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

or HBM

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

It's only usefull if you have large collections and need the special behavior.




回答2:


Use count projection (Projections.RowCount)



来源:https://stackoverflow.com/questions/1757252/nhibernate-collection-count

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!