将数组映射到单行

时间:2009-12-09 19:21:14

标签: nhibernate fluent-nhibernate

我有以下课程:

public class InventoryItem 
{ 
     private Usage[] usages = new Usage[12]; 
     virtual public Usage[] Usages { get { return usages; }} 
     virtual public string Name{get;set;} 
} 

public class Usage 
{ 
     virtual public double Quantity{get;set;} 
     virtual public string SomethingElse{get;set;} 
} 

我知道Usages.Length总是12岁。我认为这是最好的 将它存储在数据库中,如下所示:

Name nvarchar(64), 
Usage_Quantity_0 float, 
Usage_SomethingElse_0 nvarchar(16), 
Usage_Quantity_1 float, 
Usage_SomethingElse_1 nvarchar(16), 
... 
Usage_Quantity_11 float, 
Usage_SomethingElse_11 nvarchar(16), 

我怎样才能完成这项工作?

1 个答案:

答案 0 :(得分:0)

如何转换为数组和12个私有字段的getter / setter?在Hibernate中(我不知道NHibernate),映射可以放在字段上,您可以使用embeddable个实体将Usage映射到InventoryItem中的2列。如果NHibernate中没有可嵌入的实体,那么您将需要24个字段。

即使存在固定的基数,1对多的关系仍然可取。如果您担心性能问题,请搜索N + 1问题并急切提取。