【发布时间】:2016-01-08 04:51:02
【问题描述】:
以下场景的正确 HBM 映射是什么?
我需要将数据库中的 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,问题是两个列表都填充了相同的数据。
标签: c# .net nhibernate nhibernate-mapping