NHibernate映射哪些标识可以使用?

时间:2011-05-26 07:16:31

标签: nhibernate fluent-nhibernate

在选择与NHibernate一起使用的身份生成器时,我应该考虑什么?

E.g。简单流畅的映射:

Id(c => c.ID).GeneratedBy.HiLo("User");
Map(c => c.Username).Not.Nullable().Length(50);
Map(x => x.Password).Not.Nullable().Length(40);

有了这个POCO:

public class User
{
    public virtual long ID { get; private set; } // This could be changed to GUID etc
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }

    public User ()
    {
    }
}

这应该使用HiLo,uuid.hex,HiLoseq等......为什么?

1 个答案:

答案 0 :(得分:6)

a resource我在做出决定时已经习惯了(我选择了HiLo,这是我通常建议的,据我所知)。
this guy更喜欢GUID 我认为最终归结为个人偏好 每个人都同意的唯一不是使用身份(特别是如果你使用的是SQL服务器,因为那么你会在几百个记录之后耗尽你的ID ......)