我正在使用旧数据库并尝试使用某些表创建地图。
用户有个人资料,个人资料参考联系渠道。但是,在数据库中,用户的键是复合键。这有点好,但是数据库中有一些神奇的字符串,如果它们可以转换为更多类型的版本应该会很好。
在个人资料地图中:
CompositeId()
.KeyProperty(x => x.ServiceId, "SERVICE_ID")
.KeyProperty(x => x.Direction, "DIRECTION").CustomType<DirectionConverter>()
.KeyReference(x => x.Channel, new string[] { "CHANNEL_ID", "CONTACT_TYPE", "DIRECTION", "SERVICE_ID" })
.KeyProperty(x => x.ContactType, "CONTACT_TYPE")
.KeyReference(x => x.Agent, "AGENT_ID");
问题是行:
.KeyReference(x => x.Channel, new string[] { "CHANNEL_ID", "CONTACT_TYPE", "DIRECTION", "SERVICE_ID" })
(所以频道也有复合键......)
在那个参考文献中,我不知道如何告诉 fluent nhibernate 使用转换器进行“DIRECTION”列处理。在实践中,这可以看作是转换器将在 NullSafeSet 上接收空值。
是否有针对此的现有解决方案,或者唯一的选择是不对此类列使用转换器?