我有以下使用nHibernate创建和映射的模型。
使用延迟加载,因此我不需要一开始就为经销商提供车辆。

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

现在,假设经销商有数千辆汽车。

如果我执行Dealer.Vehicles.Count,那么NH将选择并提取所有数据。

简单地计数是最好的方法是什么?有什么方法可以使我无需在Dealer类中声明A new property DealerCount就可以计数吗?

Hibernate中还有一个功能,我相信它将在NH的新版本Extra Extra Lazy Loading中实现。这样可以解决问题吗?

最佳答案

额外的延迟加载将发出sql,而不是针对某些操作(例如CountContains)填充集合。在流利的映射中,其用作:

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

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

仅当您有大量收藏品并且需要特殊行为时,它才有用。

10-02 00:04