在NHibernate中添加一个新列到may to many关系

时间:2009-12-10 15:22:40

标签: nhibernate many-to-many

A有这种映射:

mapping.HasManyToMany(x => x.SubVersions).ParentKeyColumn(“ParentId”)。ChildKeyColumn(“SubVersionId”)。Table(                 “VersionLinks”);

这将创建一个包含2列的表VersionLinks(ParentId,SubVersionId)。是否可以在此表中包含另一列(例如CreateDate),该列将自动填充(DateTiem.Now)而不创建具有字段Parent,SubVersion,Date?的新实体VersionLink

2 个答案:

答案 0 :(得分:1)

您可以尝试使用默认getdate()值手动创建新的CreateDate列,但我只是为VersionLink创建一个新实体并将many-to-many转换为many-to-one s < / p>

答案 1 :(得分:0)

要自动更新日期属性,请查看使用IPreUpdateEventListener

至于映射表,我很确定你不得不创建一个复合元素。我有一个类似的问题,我想添加sortweight列。我最终得到了以下映射:

<bag
  name="criteria"
  access="field"
  table="assessment_criterion_map"
  fetch="subselect"
  cascade="save-update">
  <key column="assessment_id"/>
  <composite-element class="WeightedCriterion">
    <parent name="assessment"/>
    <many-to-one
      class="Criterion"
      name="criterion"
      access="field"
      column="criterion_id"
      cascade="save-update"
      fetch="join"/>
    <property name="Weight"/>
    <property name="SortOrder" column="sort_order"/>
  </composite-element>
</bag>