我试图用 NHibernate 映射的数据库有一个 Plan 表和一个 Date 表。一个计划可以与许多日期相关联,这是由具有 PLAN_ID 外键列的 Date 表建模的。
这些是我当前的类和映射:
public class Plan
{
public virtual int Id { get; set; }
public virtual IList<PlanDate> Dates { get; set; }
}
public class PlanDate
{
public virtual int Id { get; set; }
public virtual int PlanId { get; set; }
public virtual DateTime? Date { get; set; }
}
<class name="Plan" table="PLAN">
<id name="Id" unsaved-value="0">
<column name="ID" not-null="true" />
<generator class="native"/>
</id>
<bag name="Dates">
<key column="PLAN_ID" />
<one-to-many class="PlanDate" />
</bag>
</class>
<class name="PlanDate" table="PLAN_DATE">
<id name="Id" unsaved-value="0">
<column name="ID" not-null="true" />
<generator class="native"/>
</id>
<property name="Date" column="DATE" type="DateTime"/>
<property name="PlanId" column="PLAN_ID" type="integer"/>
</class>
这会正确地用 PlanDate 对象填充 Plan 对象中的 Dates 集合。但是,理想情况下,我希望在 Plan 类中有一个 DateTime 对象的集合。除了包含日期之外,我对 PlanDate 类没有任何用处,而且我不会更新数据库中的数据。例子:
public class Plan
{
public virtual int Id { get; set; }
public virtual IList<DateTime> Dates { get; set; }
}
有没有办法映射到这个类结构,并摆脱 PlanDate 类?