我现在只是在尝试使用 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 属性没有被更新为自动增量值,当手动设置时,更新确实有效。p.Id = (int) db.GetLastInsertId();
那么,每次插入新记录时是否需要手动设置 ID ?