功能NHibernate多态映射挑战(Fluent NHibernate Polymorphic M

2019-10-17 07:32发布

我有一些问题,使用表每个具体类映射以下情形在功能NHibernate:

比方说,我有以下的类定义:

public class Reading { .... }

public class CarReading : Reading { .... }

public class TruckReading : Reading { .... }

public class Alert 
{
    ....
    public virtual Reading AReading { get; set; }
}

所以我的问题是,如何创建映射类警报,如果它有一个与阅读课一对一的关系(可无论是卡车阅读或汽车读数),并指示NHibernate的知道哪些表从(TruckReading表或加载数据CarReading表)

public class AlertMap : ClassMap<Alert>
{
    ....
    HasOne(x => x.AReading);
}

如果任何人都可以点我在这将是非常赞赏的正确方向。

谢谢。

Answer 1:

public class AlertMap : ClassMap<Alert>
{
    ....
    ReferenceAny(x => x.AReading)
        .EntityIdentifierColumn("readingid")
        .EntityTypeColumn("readingtype")
        .IdentityType<int>()
        .AddMetaValue<CarReading>("car")
        .AddMetaValue<TruckReading>("truck");
}


文章来源: Fluent NHibernate Polymorphic Mapping Challenges