2011-05-09 46 views
10

在我目前的设计中,我有HiLo安装有 1000。这是过度的吗?我可以减少这个数字到100之类的东西吗?还可以吗?HiLo算法的MaxLo值是多少?

public class HiLoConvention : IIdConvention 
{ 
    public void Apply(IIdentityInstance instance) 
    { 
     instance.GeneratedBy.HiLo("1000"); 
    } 
} 

回答

9

HiLo值控制着您通过为该Id选择的数字类型范围的“快”程度。任何时候加载新的NHibernate配置时,新Ids的HiLo范围都会初始化,并且在处理应用程序时将被丢弃。如果您的应用程序的活动较少,并且您希望“慢”的刻录速率选择类似10的内容,因为您更有可能在给定的应用程序加载/处理周期中使用所有Ids。请记住,如果NHibernate耗尽了Ids,它只是获取另一组。如果您的应用程序经常遭受严重抨击,那么将其设置为1,000可能会更有意义减少数据库调用。这是一个试错&错误的事情。