2009-08-31 22 views
8

我使用NHibernate HiLo作爲我的身份生成器。我目前在我的數據庫中爲每個實體表都有一個表。例如,我有Customer和CustomerKey表,每個表都有一個NextHiLo列。NHibernate HiLo - 所有實體的一張表

什麼是一個偉大的事情是一個單一的表,其中包含所有其他的關鍵。 Idealy是,如果我能有這樣一個表:

TableName | NextHiLo 
Customer | 19 
Invoice | 5 
Receipt | 3 

如果isnt't可能與NHibernate,未來最好的事情是:

CustomerHiLo | InvoiceHiLo | ReceiptHiLo 
19 | 5 | 3 

是上述任何更多鈔票的兩個選項實現 - 由NHibernate生成的模式生成腳本不支持它們中的任何一個?

+0

我知道這個問題很老,但你是如何解決這個問題的?我正在嘗試解決相同的問題。我試過你的第一個方法只有2列,但似乎我的ID是連續的多個表。 – 2013-01-24 00:35:14

回答

12

您是否嘗試過使用hilo生成器的where屬性? 喜歡的東西:

<class name="Customer"> 
    <id name="Id"> 
     <generator class="hilo"> 
      <param name="where">TableName = 'Customer'</param> 
      ... 
     </generator> 
    </id> 
    ... 
</class>