1

例如,我在我的數據庫Fluent NHibernate爲重疊實體創建實體映射

NonResidentStudents兩個表 - 列studentID,studentname,ModeOfTransport

ResidentStudents - 列studentID,studentname,DateOfJoiningHostel

studentID和studentName是常見的列和最後一列是兩者之間罕見

出於某種原因,我不能改變這些表或定義一個共同的主表,並在子表中創建不尋常的列。所以桌子結構是僵硬的。

現在,當試圖使用FLUENT NHIBERNATE(唯一)創建一個實體和上述模式的映射時,我想知道我是否可以爲公共列定義某種常見實體和公共映射並創建子實體繼承來自共同實體。在子實體和映射類中,我將使用非常見列的表示。任何人都可以請分享如何做到這一點的代碼。

回答

0

我以前做過這個。

通用類

public class BaseMapping : ClassMap<EntityBase>{ 

    public BaseMapping() 
    { 
     UseUnionSubclassForInheritanceMapping(); 
     // All the rest of the mapping attributes 
    } 
} 

對於您的個人類,會從基繼承你這樣做:

public class DepartmentMapping : SubclassMap<Department> 
{ 
    public DepartmentMapping() 
    { 
     Abstract(); 
     // Map all the unique attributes 
    } 
} 

上面的代碼將創建基於部門和EntityBase一類。它不會創建一個名爲EntityBase的表。