我正在使用ServiceStack.OrmLite将一些对象保存到SQLite数据库,主键为“ID INTEGER AUTOINCREMENT”。一切正常。
但是当我尝试通过查询“SELECT * FROM Table WHERE(ID = 112)OR(ID = 113)”加载对象时,结果为空。
如果我将where子句更改为“(ID + 0 = 112)OR(ID + 0 = 113)”,则结果中有2行。 当我使用sqlite命令行工具探索数据库时,我看到所有记录都在这里,列类型是INTEGER,所有行的typeof(ID)返回“整数”。 什么可能是错的?
答案 0 :(得分:0)
尝试使用 INTEGER PRIMARY KEY ...而不是 ID INTEGER AUTOINCREMENT 或 ID INTEGER PRIMARY KEY AUTOINCREMENT 重新创建表格。
SQLite处理ROWID的方式因语法而异。
查看SQLite Autoincrement了解详情。