2010-07-14 3 views
4

글쎄, 질문이 좀 내려 간다. 나는 현재 이런 식으로 뭔가를하고 있어요 : 당신은 물론 거래를 약속 한 후NHibernate에 삽입 된 레코드의 기본 키를 반환하는 방법이 있습니까?

using (var session = _sessionFactory.OpenSession()) 
{ 
    using (var transaction = session.BeginTransaction()) 
    { 
     Car newCar = new Car(); 
     newCar.name = "Jeep"; 

     session.Save(newCar); 
     transaction.Commit();  
    } 
} 
+2

이것은 Fluent NHibernate와는 아무런 관련이 없습니다. 질문 제목을 변경하십시오. – epitka

+0

내가 사용하고있는 것입니다. 이것과 어떻게 관련이 없습니까? – CrypticPrime

+0

NHibernate에서 위의 코드에서 사용하고있는 것과 Fluent NHibernate는 엔티티를 매핑하는 방법 일 뿐이며 NHibernate 역시이를 모르고있다. xml이나 속성을 사용할 수도 있습니다. 코드는 여전히 동일합니다. – epitka

답변

7
return newCar.Id; 

.

+0

Hmmm ... 디버거에 따라 커밋에 의해 설정되지 않습니다. 이 동작을 가능하게하기 위해 매핑에서 멤버 변수를 설정해야하는 것이 있습니까? – CrypticPrime

+0

@CrypticPrime 그리고 return 문에 중단 점이 있습니까? 기본 키는 ID로 매핑됩니까? – dotjoe

+0

이 답변은 실제로 정확합니다. 문제는 내가 매핑에서 다음을 가졌다는 것입니다. Id (x => x.carID) .Column ("carID"); .GeneratedBy.Assigned(); // OFFENDING LINE OFFENDING LINE을 제거하면 NHibernate가 데이터베이스가 자동으로 증가하는 새로 생성 된 기본 키로 해당 변수를 채 웁니다. 프로토 타입의 레거시 코드이며 이제 제거되었습니다. – CrypticPrime

관련 문제