設計可以具有多語言字段的域對象的最佳方式是什麼?一個示例可以是一個Product類,其中Description是多語言的。使用NHibernate實現多語言域對象的最佳方法是什麼?
我發現有幾個鏈接,但無法確定哪一個是最好的方法。
http://fabiomaulo.blogspot.com/2009/06/localized-property-with-nhibernate.html
(此店在一個領域的所有本地化語言的數據。可能是一個問題,如果我們從SQL查詢)http://ayende.com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx
(這其中有在開始時警告稱,是一個黑客,不再支持)http://www.webdevbros.net/2009/06/24/create-a-multi-languaged-domain-model-with-nhibernate-and-c/
(這並沒有描述多語言數據將如何在數據庫中構建。)
任何人都有使用NHibernate和多語言數據的經驗。有沒有更好的辦法?
請注意,長度超過4000 Sql Server(> = 2005)將數據放在LOB結構而不是表結構... 此外,請記住,第三個解決方案將獲取所有語言應用任何性能影響的'短語' – Jaguar 2010-06-02 07:29:11
@Jaguar - 你對nvarchar(4001)是正確的。如果您知道短語短於4000,請設置適當的尺寸。至於提取所有短語,我不太確定。看起來HHibernate在默認情況下會進行延遲加載,所以我希望它只會按需加載set。但是,它可能會加載整個集合。你可以通過編寫一個標準來獲取當前文化的短語來避免這種情況。你可以把它放在實體的getter方法後面。 – mdma 2010-06-02 14:36:34