无法使用Vici Coolstorage检索自动生成的主键

时间:2014-02-06 01:00:19

标签: sqlite primary-key coolstorage

我在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

谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到过这个问题并且发现在字段上设置identity属性解决了这个问题。

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