2010-01-11 2 views
2

ID가 기본 열인 테이블이 있습니다. 그러나이 열은 ID 열이 아닙니다. 모든 값은 명시 적으로 제공됩니다.자동 증분에서 ID 열을 중지 할 수 있습니까?

다음은 내 매핑 클래스

public ObjectTypeMap() 
    { 
     Table("OBJECTTYPE"); 
     Id(x => x.ObjectTypeId); 
     Map(x => x.Title).Not.Nullable(); 
     Map(x => x.Description); 
    } 

하지만 내가 session.save를 사용하여이 객체를 저장하려고하면, 나는

는 "컬럼에 NULL 값을 삽입 할 수 없습니다라고 오류가 'ObjectTypeId' 테이블 'DiscoveryWEBTest.dbo.ObjectType'; 열에서 널을 허용하지 않습니다. INSERT가 실패합니다. \ r \ n 문이 종료되었습니다. "

하지만 내 개체에서 ObjectTypeId 값을 제공하고 있습니다.

문제는 Fluent입니다. NHibernate는 자동 증가 열로 ID 매핑을 고려하지만 데이터베이스에서 ObjectTypeId는 ID 열이 아니며 insert 문이 아무런 값도 얻지 못하고 null 오류를 throw합니다.

열이 ID 열이지만 값이 자동 증가되지 않는다고 말할 수있는 방법이 있습니까? 사전에

덕분에이 같은

답변

7

지도를 :

Id(x => x.ObjectTypeId).GeneratedBy.Assigned(); 
+0

덕분에 내가 원하는 것을 이잖아. 나는 이것에 초보적이며 아직 탐구 중이다. – Ashish

+0

문제 없습니다. 실제로 XML 매핑을 아는 것, 또는 최소한 XML 매핑에 대해 읽는 것 또한 조금 도움이됩니다. Fluent 동등 물의 이름이 비슷하지만 항상 문서화 된 것은 아닙니다. –

관련 문제