2010-06-22 153 views
3

在我工作的公司,我們有一個數據庫模式,但每個客戶使用他們自己的專用數據庫,一箇中央數據庫存儲客戶端聯繫人詳細信息以及客戶端正在使用的數據庫,因此我們可以連接到適當的數據庫。我看過使用NHibernate碎片,但它似乎已經非常安靜,看起來不完整。Nhibernate碎片生產準備好了嗎?

有沒有人知道這個項目的狀態?有沒有人在生產中使用過它?

如果它還沒有被認爲可用於生產的點,那麼還有什麼替代方案?兩個主要的似乎是:

  1. 創建每個數據庫的會話工廠,然後包裝,以選擇合適的工廠,以產生正確的會話 - 這對我來說似乎有多餘的會話工廠並沒有太多有效的
  2. 僅創建一個會話工廠,但在調用opensession時將其傳遞給IDbConnection - 這將允許會話具有不同的數據庫連接。

我對2的關注是NHibernate如何處理二級緩存,因爲我相信它是由會話工廠控制的 - 也是HiLo生成器使用會話工廠,我相信。在這些情況下會有會議附加到不同的dbs導致問題?例如,我們最終將在兩個數據庫中使用一個ID爲2的MyCompany.Model.User類,這將導致緩存內的衝突?

+0

對於OP,這可能會基於觀點或基於本地化而被封閉。 – halfer 2018-03-04 23:09:42

回答

0

您可以看看Enzo SQL Shard SQL Server的分片庫。如果您已經在使用NHibernate,則代碼中可能需要進行一些更改,但