在我目前的设计中,我HiLo设置为MaxLo
1000
。这是过度的吗?我可以将这个数字减少到像100
这样的数字并且还可以吗?
public class HiLoConvention : IIdConvention
{
public void Apply(IIdentityInstance instance)
{
instance.GeneratedBy.HiLo("1000");
}
}
答案 0 :(得分:9)
HiLo值控制您在为Id选择的数字类型范围内“快速”刻录的内容。无论何时加载新的NHibernate配置,都会初始化HiLo系列新Ids,并在处理应用程序时将其丢弃。如果您的应用程序活动较少,并且您希望“慢速”刻录速率选择10,因为您更有可能消耗给定应用程序加载/处置周期的所有ID。
请记住,如果NHibernate耗尽了ID,它只会获取另一组。如果您的应用程序经常被抨击,那么将其设置为1,000可能会减少数据库调用。这是一个试验和错误的事情。