我有以下课程:
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),
我怎样才能完成这项工作?
答案 0 :(得分:0)
如何转换为数组和12个私有字段的getter / setter?在Hibernate中(我不知道NHibernate),映射可以放在字段上,您可以使用embeddable个实体将Usage
映射到InventoryItem
中的2列。如果NHibernate中没有可嵌入的实体,那么您将需要24个字段。
即使存在固定的基数,1对多的关系仍然可取。如果您担心性能问题,请搜索N + 1问题并急切提取。