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

Dar*_*bio 1 nhibernate fluent-nhibernate

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

例如简单流畅的映射:

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

有了这个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 ()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

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

J. *_* Ed 6

我做出决定时使用的资源(我选择了HiLo,这是我通常建议的,据我所见).
这家伙更喜欢GUID.
我认为最终归结为个人偏好.
每个人都同意的唯一不是使用Identity(特别是如果你使用的是SQL服务器,因为那么你会在几百Ks记录之后耗尽你的id ...)