如何为Legacy表定义流畅的nhibernate映射。
我有四张桌子
信息
当UI用户保存新的CTTypeMapObject时,它会将记录插入到CTTypeMap表中。映射定义为:
public class CTTypeMapMap :Enity<CTTypeMap>
{
Public CTTypeMapMap()
{
Id(x => x.ID);
Map(x => x.createdOn);
References(x = x.CtType);
Join("CTTypeMap_Legacy", join =>
{
join.KeyColumn("Id");
join.Map(x => x.CTTypeMap).Column("CT_Type_id"); //not working
});
}
}
表 CTTypeMap_Legacy 的 CT_Type_id 列的值应为 CTType_Legacy_id CTType_Legacy 的列值。我无法将正确的值插入表 CTTypeMap_Legacy 的 CT_Type_id 。
有人可以让我知道如何在注释中突出显示的行上进行映射吗?
答案 0 :(得分:0)
目前尚不清楚您设置值的位置,但我猜您的意思是
join.References(x => x.CTType_Legacy).Column("CT_Type_id");
更新:以下diables lazy-loading
join.References(x => x.CTType).Column("CT_Type_id").PropertyRef("CTType_Legacy_id");
或
join.Map(x => FakeProperty).Column("CT_Type_id").Access.Using<MyPropertyAccessor>();
// in Igetter
public object Get(object obj)
{
return ((CTTypeMap)obj).CTType.LegacyId;
}