NHibernate映射要使用哪个标识? 当选择与NHiBialNe.使用哪个身份生成器时,我应该考虑什么?

NHibernate映射要使用哪个标识? 当选择与NHiBialNe.使用哪个身份生成器时,我应该考虑什么?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,例如,一个简单的fluent映射: 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 co

例如,一个简单的fluent映射:

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等。。。为什么呢?

我在做决定时用过(据我所知,我和HiLo一起去了,这是通常推荐的)。
更喜欢GUID。
我认为归根结底这是个人喜好。
每个人都同意的唯一一件事是不要使用标识(特别是如果您使用的是SQL server,因为在几个100Ks记录之后,您将耗尽您的ID…

我在做决定时使用了标识(据我所知,我使用了通常推荐的HiLo)。
更喜欢GUID。
我认为归根结底这是个人喜好。
每个人都同意的唯一一件事是不要使用标识(特别是如果您使用的是SQL server,因为这样您将在几个100Ks记录之后耗尽您的ID…)