2009-12-10 15 views
0

性質我有一種情況,我有鍵/值的屬性包,將看起來像:地圖動態/通用與NHibernate

Entry 1 : key="Load", value="2", type="int" 
Entry 2 : key="DailyStatus", value="0", type="bool" 

我試圖找出是否有可能與NHibernate映射這些值添加到單個表中,稍後我可以將其導入.net簡單類型。

我試圖避免創建類包含所有這些數據,因爲它可以是非常重複,並且不允許應用程序的部分要儘可能地靈活。我曾考慮將它存儲爲XML或JSON,但這些數據必須定期查詢。

有沒有人映射到表簡單類型的詞典中NHibernate和拉數據回來了?我想映射到一個通用的字典將工作:

IDictionary<string, IDictionary<object, Type>> 

我可以自己動手完成,但如果有一個NHibernate的一個內建的方式來完成它,這將是更容易。

+0

你要存儲在運行時定義,或者是他們都在編譯時定義的一組S型?它們僅限於.net基本類型(即IConvertible)還是其他可能的?你使用哪個數據庫? (我懷疑你想要做什麼可能取決於這些問題的答案,但它是一個不平凡的解決方案,因此我首先要問) – fostandy 2009-12-10 15:58:22

+0

它們都是在編譯時提前知道的。目前,他們都可以使用iconvertible,雖然這可能會改變,但我現在假設他們都是.net簡單的類型。大多布爾和整數 – 2009-12-10 18:12:59

+1

忘記數據庫:MsSql2005。可能是2008年,但在這一點上,我們假設它將是2005年。在這張紙上它應該真的很重要,因爲我們正在使用nhibernate。忘了提及我們也使用nhibernate linq擴展 – 2009-12-10 18:42:01

回答

1

如何創建一個類「三胞胎」與attriutes ID,鍵,值,類型,然後將其映射到一個名爲任何你想要的表?

+0

,將工作,但我怎麼能知道什麼樣的NHibernate基礎類型的記錄?當我訪問字典項目時,我想獲得簡單類型。也許使用泛型? 我想這需要鑄造類型值 – 2009-12-10 14:45:48

+0

你的意思是你所擁有的三聯類的「類型」屬性。也許你可以將一個Triplet類映射到一個私有字段,然後將一個通用字典作爲公有。您可以使用某種工廠從專用字段填充此字典,也可以在Tripplet的「type」屬性上添加switch語句。您將不得不跟蹤更改,以便您可以將條目推入/拉入專用字段。我正在做類似的事情,除了我將整個對象圖序列化爲私有字段。 – epitka 2009-12-10 15:24:33