使用分区鉴别器列映射分区表
我有一个遗留的Oracle 10g数据库。 此数据库有一个表ITEMDELIVERY
,其ITEMDELIVERY
DELIVERY_DATE
。 该表由此列分区。 因此,此表的主键是包含ITEMDELIVERY_ID
和DELIVERY_DATE
列的复合键。
还有另一个表ITEMDELIVERYDETAIL
它有一个FK到ITEMDELIVERY
。 为了能够从分区中受益并且能够自己进行分区,该表有一个PARTITION_DATE
列。 ITEMDELIVERY_ID
和PARTITION_DATE
形成FK到ITEMDELIVERY
。
PARTITION_DATE
在ITEMDELIVERYDETAIL
没有商业含义,只是出于技术原因。 因此,我想避免在我的实体中指定此列。
我在IAutoMappingOverride
的实现中尝试了以下内容:
mapping.Map(x => x.ItemDelivery.DeliveryDate).Column("PARTITION_DATE");
但这不起作用,我得到以下exception:
NHibernate.PropertyNotFoundException:在“Domain.ItemDeliveryDetail”类中找不到属性“DeliveryDate”的getter
有没有办法实现我的目标?
我认为这个问题的答案是在另一个问题中使用ItemDelivery
中的ItemDeliveryDetail
参考。
mapping.References(x => x.ItemDelivery) .Columns("ITEMDELIVERY_ID", "PARTITIONDATE");
这使得它不可见,自动填充,并且对其父级的引用是理智的
在“经典”NHibernate中,我曾经通过在属性映射中添加access="private"
来解决类似的问题。 这告诉NHibernate映射到私有成员变量,因此对模型的其余部分是不可见的。
流畅的NHibernate有一个解决方案 ,用他们自己的话来说并不理想,但它确实支持该function。
如果您对在您的域中拥有它不感兴趣,为什么要映射它? 如果要映射Item的属性,请将其添加到ItemDelivery类映射中