我在使用Table Per Concrete类在Fluent Nhibernate中映射以下场景时遇到了一些问题:
假设我有以下类定义:
public class Reading { .... }
public class CarReading : Reading { .... }
public class TruckReading : Reading { .... }
public class Alert
{
....
public virtual Reading AReading { get; set; }
}
所以我的问题是如何为Alert创建映射类,如果它与读取类具有一对一的关系(可以是卡车读取或汽车读取)并指示nhibernate知道从哪个表加载数据( TruckReading表或CarReading表)
public class AlertMap : ClassMap<Alert>
{
....
HasOne(x => x.AReading);
}
如果有人能指出我正确的方向,我会非常感激。
感谢。
答案 0 :(得分:0)
public class AlertMap : ClassMap<Alert>
{
....
ReferenceAny(x => x.AReading)
.EntityIdentifierColumn("readingid")
.EntityTypeColumn("readingtype")
.IdentityType<int>()
.AddMetaValue<CarReading>("car")
.AddMetaValue<TruckReading>("truck");
}