1

現在、Sqlite 用の Ormlite を試しているところですが、問題が発生しました。このコードは単純ですが、更新されていないようです。

簡単なテストクラスを次に示します。

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 を手動で設定する必要がありますか?

4

0 に答える 0