2010-10-22 87 views
1

我在描述NH中的DataBase安裝時遇到了一些麻煩。流利的NHibernate分層數據問題(每個層次一個表)

我有以下類別:

public class BaseData 
    { 
     public virtual long Id { get; set; } 
    } 

    public class ExtendedData : BaseData 
    { 
     public virtual string Name { get; set; } 
    } 

背表如下所示:

BaseTable 
--------- 
* Id 

ExtendedTable 
------------- 
* Id 
* Name 

使用案例:我創造,我要堅持的ExtendedData實例。我期待兩個表中的條目(具有序列中相同的ID)。

有沒有人有一個想法如何爲此創建一個流暢的映射?

非常感謝!

Seb

+0

看起來像一一對一映射,不是嗎? – 2010-10-22 14:04:27

回答

0

回首,那是太容易......

public class BaseDataMapping : ClassMap<BaseData> 
{ 
    public BaseDataMapping() 
    { 
     this.LazyLoad(); 
     this.Table("BaseTable"); 
     this.Id(x => x.Id, "id").GeneratedBy.Native("SEQ_ID");   
    } 
} 

public class ExtendedDataMapping : SubclassMap<ExtendedData> 
{ 
    public ExtendedDataMapping() 
    { 
     this.LazyLoad(); 
     this.Table("ExtendedTable"); 
     this.Map(x=>x.Name, "Name"); 
    } 
} 
1

由於您有一個基類,您可以在映射時忽略它。使用.IgnoreBase <>()方法

例如:

autoPersistenceModel.IgnoreBase<AdvanceEntity>().IgnoreBase<BaseAchievableArea>().IgnoreBase<AuditableEntity>(); 

希望這將引導您在右側。

相關問題