以下场景的正确HBM映射是什么?NHibernate映射多个关系
我需要将数据库中的ValueItem
限定为收入或支出项目,以便NHibernate在加载它时将其加载到正确的列表中。
问题是:当从数据库中检索Container
时,IncomeItems和ExpenseItems集合的竞争是相同的。
C#
public class Container
{
public virtual IList<ValueItem> IncomeItems { get; set; }
public virtual IList<ValueItem> ExpenseItems { get; set; }
}
public class ValueItem
{
public virtual double Amount { get; set; }
public virtual string Description { get; set; }
}
HBM
<class name="Container">
<id name="Id">
<generator class="hilo" />
</id>
<list name="IncomeItems " cascade="all-delete-orphan">
<key column="ContainerId" />
<index column="ItemIndex" />
<one-to-many class="ValueItem"/>
</list>
<list name="ExpenseItems " cascade="all-delete-orphan">
<key column="ContainerId" />
<index column="ItemIndex" />
<one-to-many class="ValueItem"/>
</list>
</class>
<class name="ValueItem">
<id column="Id" type="int">
<generator class="hilo" />
</id>
<property name="Amount" />
<property name="Description" />
</class>
看起来像它应该工作,是不是以某种方式工作或者什么你问? – R0MANARMY 2011-03-25 14:45:56
@ R0MANARMY,问题是这两个列表都填充了相同的数据。 – 2011-03-25 16:31:13