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的表。