11

在我目前的设计中,我有HiLo设置以拥有一个MaxLo. 1000这是不是太过分了?我可以将这个数字减少到类似的东西100并且仍然可以吗?

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

1 回答 1

9

HiLo 值控制您在为 Id 选择的数字类型范围内燃烧的“速度”。每当加载新的 NHibernate 配置时,都会初始化新 Id 的 HiLo 范围,并在处理应用程序时将其丢弃。如果您的应用程序活动较少并且您希望“慢”消耗率选择 10 之类的值,因为您更有可能在给定的应用程序加载/处置周期内消耗所有 Id。

请记住,如果 NHibernate 用完 Id,它只会获取另一组。如果您的应用程序经常受到猛烈抨击,那么将其设置为 1,000 可能对减少数据库调用更有意义。这是一个反复试验的事情。

于 2011-05-09T14:50:37.540 回答