Windows Forms プロジェクトで Vici Coolstorage を使用して SQLite データベースにアクセスしています。私のデータベースのすべてのテーブルには、INTEGER PRIMARY KEY として定義された ID というフィールドがあるため、自動インクリメント フィールドです。
オブジェクトをデータベースに保存した後、そのフィールドの値を取得しようとしていますが、実際の 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
ありがとうございました!