Nhibernate 复合ID标识

Nhibernate 复合ID标识,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,数据库表有两列PK-(ID,ClientID)其中ClientID是一个FK,ID列设置为标识。此实体的映射: CompositeId(x => x.Id) .KeyProperty(x => x.Id, "ID") .KeyProperty(x => x.ClientId, "ClientID"); 尝试插入新行时,NH告知此SqlParameterCollection的索引10无效,计数为10。据我所知,它也尝试插入ID值,但由于它被配置为

数据库表有两列PK-
(ID,ClientID)
其中
ClientID
是一个FK,
ID
列设置为标识。此实体的映射:

CompositeId(x => x.Id)
        .KeyProperty(x => x.Id, "ID")
        .KeyProperty(x => x.ClientId, "ClientID");
尝试插入新行时,NH告知此SqlParameterCollection的
索引10无效,计数为10。
据我所知,它也尝试插入
ID
值,但由于它被配置为标识,因此无需插入
ID


是否可以将
.KeyProperty(x=>x.Id,“Id”)
映射为标识,就像我们可以使用非复合标识一样?

不支持将标识列作为复合密钥的一部分。但是您也不需要它们:标识列本身是唯一的。

只要
ClientId
是FK,就尝试用
.KeyProperty(x=>x.ClientId,“ClientId”)
替换
.KeyReference(x=>x.ClientId,“ClientId”)