2011-05-26 40 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 ...)