2010-01-15 40 views
4

我試圖地圖功能NHibernate枚舉值的集合。映射元素與功能NHibernate簡單的集合

IList<EnumType> lst; 

我找不到任何有關它的文檔,但我確信它應該是可能的。 我根本沒有任何問題與映射的實體集合。

謝謝, 萊昂納多

+0

這是很簡單,你只需要使用元素(「」)標籤的功能NHibernate mappaing的收集。 – Homer1980ar 2010-01-16 17:55:07

+0

然後寫出一個完整的答案並接受它。那樣的話人們仍然可以高舉它。 – 2011-04-28 16:03:33

回答

1

的hasMany(X => x.Items) 。表( 「TBL」) .KeyColumn( 「FK」) .Element( 「ECOL」) .AsBag()

4

您可以使用以下FNH映射簽名映射簡單的值類型的集合。

HasMany(x => x.Collection) 
    .Table("TableName") 
    .KeyColumn("KeyColumnName") 
    .Element("ValueColumnName"); 

其中:

  • 收藏:值類型的集合(可enum,因爲這將被映射爲INT)。
  • TableName:將存儲您的集合值的表的名稱。
  • KeyColumnName:將存儲密鑰值回父列的名稱。
  • ValueColumnName:將存儲實際值的列的名稱。

讓我們看看如何映射少量值類型集合的例子。

​​

該映射的結果將產生四(4)個表格。

  1. 表實體爲int的一列編號。
  2. 表Entity_String有兩列 - ENTITYID:整型,字符串:varchar和外鍵ENTITYID到實體表ID列。
  3. ...同樣,除了列是int類型。
  4. ...同樣,除了列是日期時間類型。