我正在使用这里的 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 的新实例时,Key 会自动设置为 0。我将 Date 设置为某个值,然后调用 InsertOrReplace。该记录确实保存在我的数据库中。 Key 字段获取自动增量值,该值恰好为 0,因为它是第一条记录。
然后,我创建 LogEntry 的新实例(Key 自动初始化为 0)并将日期设置为其他值。然后我调用 InsertOrReplace。由于存在一个 Key 为 0 的现有记录,该记录将被更新。
处理这个问题的正确方法是什么?我考虑过将密钥初始化为-1,但这似乎也不起作用。
有人有这个工作的例子吗?
如果将 Key 更改为可空类型(int?),它应该可以工作。然后 SQLite 看到 null 进来并在需要时生成新的 id。
public class LogEntry
{
[PrimaryKey, AutoIncrement]
public int? Key { get; set;}
public DateTime Date { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)