Hibernate复杂映射

时间:2009-10-03 13:53:52

标签: nhibernate inheritance fluent-nhibernate nhibernate-mapping

我们使用pesonal设计来存储修改过的行。对于我们需要保留的数据,我们使用2个表;第一个使用不更改的字段,第二个使用软删除。

+----------+  +---------------+ 
| TableBase|  | Table         | 
+==========+  +===============+ 
| Id       |  | TableId       |
| FieldA   |  | Id            |
+----------+  | ReplacedBy    |
              | FieldB        |
              | FieldC        | 
              +---------------+ 

现在我们有了当前的课程:

 public abstract class TableBase
 {
  public virtual int Id { get; protected set; }
  public virtual string FieldA {get; set;}
 }

 public class Table: TableBase
 {
  public virtual int TableId { get; protected set; }
  // ReplacedBy is null: not replaced
  public virtual int? ReplacedBy { get; set; }
  public virtual string FieldB {get; set;}
  public virtual string FieldC {get; set;}
 }

有没有办法用Fluent NHibernate进行映射?  <加入>可能是更好的解决方案,但是没有办法告诉我们只有在ReplacedBy为空时才需要加载。

映射忽略Where,并且子类中不存在。

0 个答案:

没有答案