我在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
谢谢!
答案 0 :(得分:0)
我遇到过这个问题并且发现在字段上设置identity属性解决了这个问题。
[Identity]
public int Id
{
get { return (int)GetField("Id"); }
}