2014-02-06 4 views
0

Windows Forms 프로젝트에서 Vici Coolstorage를 사용하여 SQLite 데이터베이스에 액세스하고 있습니다. 데이터베이스의 모든 테이블에는 INTEGER PRIMARY KEY로 정의 된 ID라는 필드가 있으므로 자동 증가 필드입니다.Vici Coolstorage를 사용하여 자동 생성 된 기본 키를 검색 할 수 없습니다.

개체를 데이터베이스에 저장 한 후에 해당 필드 값을 검색하려고하지만 실제 ID 대신 항상 값 0이 표시됩니다. Vici Coolstorage 문서에서는 "기본 키가 데이터베이스의 자동 번호 (ID) 필드로 정의 된 경우 개체를 저장 한 후에 생성 된 기본 키를 검색 할 수 있지만" 뭔가 잘못하고있다. 도와주세요. 이 코드는 문제를 재현합니다.

<MapTo("Company")> Public MustInherit Class Company 
    Inherits CSObject(Of Company, Integer) 
    Public MustOverride ReadOnly Property ID As Integer 
    Public MustOverride Property Name As String 
End Class 

Sub SomeMethod() 
    Dim C As Company = Company.[New] 
    C.Name = "Some name" 
    C.Save() 
    MessageBox.Show(C.ID) 'This always prints 0!!! 
End Sub 

고맙습니다!

+0

어떤 버전의 CoolStorage를 사용합니까? 로깅을 활성화하고 INSERT 및 다음 SQL 문을 게시 할 수 있습니까? –

답변

0

이 문제가 발생하여 현장에서 ID 속성을 설정하면 문제가 해결된다는 것을 알았습니다.

[Identity] 
public int Id 
{ 
    get { return (int)GetField("Id"); } 
}