Fluent NHibernate 为重叠实体创建实体映射
Posted
技术标签:
【中文标题】Fluent NHibernate 为重叠实体创建实体映射【英文标题】:Fluent NHibernate Create entity mapping for overlapping entities 【发布时间】:2015-06-20 11:36:14 【问题描述】:例如。我的数据库中有两个表
NonResidentStudents - 列 studentID、studentname、ModeOfTransport
ResidentStudents - 列 studentID、studentname、DateOfJoiningHostel
studentID 和 studentName 是公共列,最后一列在两者之间不常见
由于某种原因,我无法更改这些表或定义一个公共主表并在子表中创建不常见的列。所以桌子结构是刚性的。
现在,当尝试使用 FLUENT NHIBERNATE(仅)为上述模式创建实体和映射时,我想知道是否可以为公共列定义某种公共实体和公共映射,并创建继承自的子实体共同实体。在子实体和映射类中,我将对不常见的列进行表示。任何人都可以分享如何做到这一点的代码。
【问题讨论】:
【参考方案1】:我以前做过。
普通类
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
上面的代码将创建一个基于 Department 和 EntityBase 的类。它不会创建一个名为 EntityBase 的表。
【讨论】:
以上是关于Fluent NHibernate 为重叠实体创建实体映射的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Fluent NHibernate 中创建基实体和基类映射
Fluent NHibernate 实体 HasMany 不同子类类型的集合