我在下面所描述的继承:映射继承3.3
public abstract class BaseEntity<TId> {....}
public abstract class ModelEntity : BaseEntity<Int32>{....}
public abstract class AuditableEntity : ModelEntity,IAuditable{....}
public class ApplicationUser : AuditableEntity{....}
public class SuperUser : ApplicationUser
我使用NHibernate的3.3,我想为继承
public abstract class ModelEntityMap<TEntity> : ClassMapping<TEntity>
where TEntity : ModelEntity
{...}
public class AuditableEntityMap<TEntity> : ModelEntityMap<TEntity> where TEntity : AuditableEntity
{ ...}
public class ApplicationUserMap : AuditableEntityMap<ApplicationUser>
{...}
public class SuperUserMap : JoinedSubclassMapping<SuperUser>{...}
创建映射当应用程序启动并改掉设置数据库引起以下异常: SuperUser的模糊映射发现多于一个根实体BaseEntity/ApplicationUser
可能的解决方案 - 在一个实体中映射根实体代表层次结构中的实根 - 用逻辑注入一个IModelInspector以发现真正的根实体。
我用流利的NHibernate的具有相同的继承和工作得很好定义为 公共类SuperUserMap SuperUserMap:SubClassMap {...}
我是新来NHibernate的映射的代码,并很困惑!
有点晚这里的派对......但你最终如何解决这个问题? –
现在是2016年,我坚持着同样的问题。 – Alexandr