0

我正在使用 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字段。我应该使用像组件这样的不同方法来实现我的目标吗?

4

1 回答 1

0

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

于 2013-09-02T07:37:56.453 回答