【发布时间】:2010-03-18 14:17:19
【问题描述】:
所以,我在流畅的 nhibernate 中映射时遇到问题。我想使用连接映射来展平中间表:这是我的结构:
[Vehicle]
VehicleId
...
[DTVehicleValueRange]
VehicleId
DTVehicleValueRangeId
AverageValue
...
[DTValueRange]
DTVehicleValueRangeId
RangeMin
RangeMax
RangeValue
请注意,DTValueRange 没有 VehicleID。我想将 DTVehicleValueRange 展平到我的 Vehicle 类中。 Tgis 适用于 AverageValue,因为它只是一个普通值,但我似乎无法正确映射 ValueRange 集合。
public VehicleMap()
{
Id(x => x.Id, "VehicleId");
Join("DTVehicleValueRange", x =>
{
x.Optional();
x.KeyColumn("VehicleId");
x.Map(y => y.AverageValue).ReadOnly();
x.HasMany(y => y.ValueRanges).KeyColumn("DTVehicleValueRangeId"); // This Guy
});
}
如果 HasMany 映射位于 Join 内部,它似乎不会做任何事情。如果它在 Join 之外并且我指定了表,它会映射,但 nhibernate 会尝试使用 VehicleID,而不是 DTVehicleValueRangeId。
我做错了什么?
【问题讨论】:
-
我和其他人(groups.google.com/group/fluent-nhibernate/browse_thread/thread/…)也遇到了同样的问题。你找到解决方案了吗?
-
没有。我得到的最好的结果是“这不是你应该使用 NHibernate 的方式”。我的理解是它将一个表映射到多个对象,但不会将一个对象映射到多个表。 (或者至少不存在对此的支持。)从那时起我已经切换了项目,并且目前没有使用 NHibernate,所以我的信息可能已经过时了。
-
这个问题也让我很困惑。真的让我头疼。
标签: fluent-nhibernate join nhibernate-mapping