1
복합 키가있는 표가 있는데 그 중 하나는 ID 필드입니다. ID 필드는 분명히 나중에 추가되었습니다. 왜냐하면 ID가 복제되는 곳이 1000 개 이상 있기 때문에 고유 키를 제공하기 위해 복합 키의 두 번째 부분에 의존하기 때문입니다.FluentNHibernate를 사용하는 복합 키의 식별 필드
CREATE TABLE [dbo].[tblSaveCommissions](
[SaveTransID] [int] NOT NULL,
[CommID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[AccountNumber] [varchar](40) NULL,
... (extra fields)
CONSTRAINT [PK_tblSaveCommissions] PRIMARY KEY CLUSTERED
(
[SaveTransID] ASC,
[CommID] ASC)
)
FluentNHibernate 매핑은 다음과 같습니다 (약칭 함) : 다음은 테이블 선언입니다
System.Data.SqlClient.SqlException : Cannot insert explicit value for identity column in table 'tblSaveCommissions' when IDENTITY_INSERT is set to OFF.
: 지금은 레코드를 삽입 할 때
public class SaveCommissionMap : ClassMap<SaveCommissionEntity>
{
public SaveCommissionMap()
{
Table("tblSaveCommissions");
CompositeId()
.KeyProperty(x => x.Id, "CommID")
.KeyProperty(x => x.SaveTransactionId, "SaveTransId");
Map(x => x.AccountNumber);
References(x => x.SaveTransaction)
.Column("SaveTransId").Not.Insert().Not.Update();
}
, 나는 다음과 같은 오류가 발생합니다
이 작업을 수행하기 위해 매핑을 어떻게 작동합니까?