2009-12-08 55 views
0

我有一個域對象有一些Uri屬性需要被持久化到一個Url表中,該表有幾個Uri部分,這些屬性在檢索後需要重新組合。我可以很好地存儲屬性,但是如何告訴NHibernate如何重新創建Uri屬性?您不能直接設置大部分Uri對象的屬性。相反,url必須被彙編並傳遞給Uri構造函數。NHibernate persist System.Uri

回答

2

個人而言,我不覺得URI類型是超級有用的,但有一些我能想到的2種選擇:

  1. 創建通過實施IUserType一個新的用戶類型(見http://intellect.dk/post/Implementing-custom-types-in-nHibernate.aspx - 搜索開放的實施它大約下降一半)
  2. 創建一個在NHibernate中映射的受保護的字符串屬性,並在其周圍封裝一個公共Uri。

UPDATE

我還沒有與此發揮。但是你正在尋找開放的,我認爲你想看看執行ICompositeUserType代替IUserType的屬性映射。想法(不是基於Uri,但可能適用於指針)http://www.lostechies.com/blogs/rhouston/archive/2008/03/23/mapping-timestamp-data-using-nhibernate-s-icompositeusertype.aspx

+0

這兩種解決方案都不起作用,因爲我需要將URL的各個部分作爲列存儲在數據庫中供以後分析。 – Chris 2009-12-08 15:03:18

+0

啊,我錯過了那部分,對不起。那麼意圖是根據uri的一部分來檢索還是搜索?即從obj o where u.Uri.Host =='foo'? – 2009-12-08 15:45:51