2011-05-26 61 views
1

在选择使用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() 
    { 
    } 
} 

如果这种使用希洛uuid.hex,HiLoseq等等......为什么?

回答

6

a resource我在做出决定时使用过(我跟HiLo一起,这是通常推荐的,据我所知)。
this guy喜欢GUID更好。
我认为最终归结为个人喜好。
每个人都同意的唯一的事情就是不要使用身份(特别是如果你使用的是SQL服务器,因为那么你会在几个100Ks的记录后耗尽你的ID ...)