2014-02-06 28 views
0

我在Windows Forms项目中使用Vici Coolstorage访问SQLite数据库。在我的数据库的每个表中都有一个称为ID的字段定义为INTEGER PRIMARY KEY,因此它是一个自动增量字段。使用Vici无法检索自动生成的主键Coolstorage

我试图在将对象存储在数据库中后检索该字段的值,但我总是得到值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

您使用的是哪个版本的CoolStorage?你能否启用日志并发布INSERT和下列SQL语句? –

回答

0

曾经遇到过这个问题,并发现设置字段上的身份属性解决了这个问题。

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