0

我在 Windows 窗体项目中使用 Vici Coolstorage 来访问 SQLite 数据库。在我的数据库中的每个表中,都有一个名为 ID 的字段定义为 INTEGER PRIMARY KEY,因此它是一个自动递增字段。

在将对象存储在数据库中后,我试图检索该字段的值,但我总是得到值 0 而不是真实 ID。Vici Coolstorage 文档指出“如果主键被定义为数据库中的自动编号(身份)字段,您可以在保存对象后检索生成的主键”,但这似乎不是真的,除非我'我做错了什么。请帮我。此代码将重现该问题:

<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

0

遇到了这个问题,并发现在字段上设置身份属性可以解决这个问题。

[Identity]
public int Id
{
    get { return (int)GetField("Id"); }
}
于 2014-03-30T01:54:56.827 回答