NHibernate自定义表层次结构

时间:2013-08-30 11:36:19

标签: nhibernate

我使用NHibernate映射以下实体:

+ Party (abstract)
  - Employee
  - Customer

我正在以下列方式使用名为 joined-subclass 的映射策略:

<!-- Base PARTY entity-->
  <class name="PartyMap" abstract="true" table="Party">
    <id name="Id" column="PartyID">
      <generator class="guid.comb" />
    </id>
    <joined-subclass table="Customer" name="Customer">
      <key column="CustomerID" />
    </joined-subclass>
    <joined-subclass table="Employee" name="Employee">
      <key column="EmployeeID" />
    </joined-subclass>
  </class>

我的问题是在 Party 表中我有以下结构:

PartyTable
  PartyID
  EmployeeID
  CustomerID

虽然NHibernate对映射的每个子表使用 Id 字段。我应该使用像组件这样的不同方法来实现我的目标吗?

1 个答案:

答案 0 :(得分:0)

我找到的一个可能的解决方案是在NHibernate框架之上实现事件列表器,这样每次保存实体时我都可以控制传递的值并使用Guid修复错误,而无需创建疯狂的存储过程。 我知道它很丑,但数据库是遗留的,所以我没有太多可以做的