2012-08-02 75 views
0

當我開始使用nhibernate時,我只是做了我一直使用的遞增int。現在我對nhibernate和工作單位有了更多的瞭解,我覺得遞增整數並不是一個好辦法(他們打破了工作單位)。PK數據類型選擇Nhibernate?

我想知道我應該使用什麼作爲主鍵?我應該使用GUID還是HILO?

我喜歡GUID問他們是獨特的,但我不喜歡他們可以佔用大量的房間,如果你開始得到一個巨大的分貝。

我還沒有使用HILO,但我認爲你需要一個特殊的hilo表來使它工作起來有點尷尬。

什麼是人的思想。

最後,當我有時間時,我想將舊代碼轉換爲使用這種新的PK數據類型,以便我可以開始更好地使用工作單元。

將ok數據轉換爲PK的最佳方法是什麼?正在使用我談到的比其他數據類型更容易轉換的2種數據類型之一?

回答

0

GUID應該用於需要跨數據庫複製的情況。而不是標準的GUID,它會混亂你的索引。新罕布什爾州有一個Guid.Comb。

至於HILO - 只用於配料一次。不喜歡使用額外的表的想法。之後,移到自然鍵。

基礎我建議使用Guid.Comb。 下面是一些閱讀過這樣的事:
Using The Guid.Comb Identifier Strategy

+0

當我的意思是GUID我指的是一個是數據庫,所以我認爲這是Guid.Comb。 – chobo2 2012-08-02 21:19:32