ここから sqlite.net の PCL バージョンを使用しています ( https://github.com/oysteinkrog/SQLite.Net-PCL )。
これが私の単純なクラスです。
public class LogEntry
{
[PrimaryKey, AutoIncrement]
public int Key { get; set;}
public DateTime Date { get; set; }
}
LogEntry の新しいインスタンスが作成されると、キーは自動的に 0 に設定されます。日付を何かに設定してから、InsertOrReplace を呼び出します。レコードはデータベースに保存されます。Key フィールドは、最初のレコードであるため、たまたま 0 になる自動インクリメント値を取得します。
次に、LogEntry の新しいインスタンスを作成し (Key は自動的に 0 に初期化されます)、日付を別の値に設定します。次に、InsertOrReplace を呼び出します。Key が 0 の既存のレコードがあるため、そのレコードが更新されます。
これに対処する適切な方法は何ですか?キーを -1 に初期化することを検討しましたが、それもうまくいかないようでした。
誰かがこの作業の例を持っていますか?