我在MySql数据库中有一个表,如下所示:
CertificateYear CHAR(4) (PK)
CertificateNumber INT AUTOINCREMENT (PK)
... other fields
密钥是复合密钥。我已经使用此配置来拥有一个每年重置的字段(CertificateNumber)。每当CertificateYear更改时,CertificateNumber将重置并从1开始。 我的问题在于Fluent NHibernate中的映射。到目前为止,我已经在我的ClassMap中完成了这个:
CompositeId()
.KeyProperty(x => x.CertificateYear, "CertificateYear")
.KeyProperty(x => x.CertificateNumber, "CertificateNumber");
保存实体时,我将值设置为CertificateYear并保留CertificateNumber,但我不知道如何对NHibernate说自动生成CertificateNumber。它为它赋值0,然后抱怨重复键... 问题是:有没有办法告诉NHibernate,CertificateNumber是复合键的一部分,是自动生成的?