C# 为什么这个简单的对象在插入OrmLite和Sqlite(C)之后没有设置Id属性

C# 为什么这个简单的对象在插入OrmLite和Sqlite(C)之后没有设置Id属性,c#,sqlite,ormlite,C#,Sqlite,Ormlite,我目前正在尝试使用Ormlite for Sqlite,但遇到了一个问题——这段代码虽然简单,但似乎没有更新 下面是一个简单的测试类: class Person { [AutoIncrement] public int Id { get; set; } public string FirstName { get; set; } public string Surname { get; set; } public Person() { }

我目前正在尝试使用Ormlite for Sqlite,但遇到了一个问题——这段代码虽然简单,但似乎没有更新

下面是一个简单的测试类:

class Person
{
    [AutoIncrement]
    public int Id { get; set; }

    public string FirstName { get; set; }
    public string Surname { get; set; }

    public Person()
    {
    }

    public Person(string firstname, string surname) : this()
    {
        FirstName = firstname;
        Surname = surname;
    }

}
以及Ormlite代码:

OrmLiteConfig.DialectProvider = SqliteDialect.Provider;

using (IDbConnection db = "c:/temp/test.sqlite".OpenDbConnection())
{
    db.DropAndCreateTable<Person>();

    var p = new Person("bob", "smith");

    // p.Id property not being set in this Insert
    db.Insert(p);

    p.FirstName = "robert";

    db.Update<Person>(p);
更新:我发现在第一次插入之后,Person.Id属性没有被更新为自动递增的值,并且当手动设置时,更新确实有效。那么,我是否需要手动设置Id,p.Id=int db.GetLastInsertId;每次我插入新记录时