0

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

ありがとうございました!

4

1 に答える 1