映射带有分区鉴别符列的分区表
本文关键字:分区表 鉴别 分区 映射 | 更新日期: 2023-09-27 18:17:40
我有一个旧的Oracle 10g数据库。这个数据库有一个表ITEMDELIVERY
,其中有一个列DELIVERY_DATE
。表按此列进行分区。因此,该表的主键是包含ITEMDELIVERY_ID
和DELIVERY_DATE
列的复合键。
还有另一个表ITEMDELIVERYDETAIL
,它对ITEMDELIVERY
有一个FK。为了能够从分区中获益,也为了能够对自己进行分区,这个表有一个列PARTITION_DATE
。ITEMDELIVERY_ID
和PARTITION_DATE
构成到ITEMDELIVERY
的FK。
PARTITION_DATE
在ITEMDELIVERYDETAIL
中没有商业意义,只是出于技术原因。因此,我希望避免在我的实体中指定此列。
我在IAutoMappingOverride<ItemDeliveryDetail>
的实现中尝试了以下操作:
mapping.Map(x => x.ItemDelivery.DeliveryDate).Column("PARTITION_DATE");
但这不起作用,我得到以下异常:
有什么方法可以达到我的目标吗?NHibernate。在类"Domain"中找不到属性"DeliveryDate"的getter。ItemDeliveryDetail '
我认为这个问题的答案是在ItemDeliveryDetail
中使用ItemDelivery
的参考,你在另一个问题中显示。
mapping.References(x => x.ItemDelivery)
.Columns("ITEMDELIVERY_ID", "PARTITIONDATE");
这使得它不可见,自动填充,并且对其父的引用是相同的
在"classic" NHibernate中,我曾经通过将access="private"
添加到属性映射来解决类似的问题。这告诉NHibernate映射到一个私有成员变量,因此,这个私有成员变量对模型的其余部分是不可见的。
Fluent NHibernate对此有一个解决方案,用他们自己的话来说并不理想,但它确实支持这个特性。
如果您对在您的域中拥有它不感兴趣,为什么要映射它?如果您想映射Item的属性,那么将它添加到ItemDelivery类映射