由于Android7.0的SQlite问题,我最近从SQLite.NET迁移到了SQLite-net-pcl。
在这个过程中,我已经更新了所有的库,并且所有的插入/删除等都运行得很好。
我唯一的问题是,每次我从数据库中检索一个条目时,它的ID总是为0。这会导致更新项目时出现问题。以前有没有人遇到过这个问题?
[SQLite.PrimaryKey, SQLite.AutoIncrement]
public int ID { get; set; }
public string objectId { get; set; }
public DateTime createdAt { get; set; }
public DateTime updatedAt { get; set; }
public string Title { get; set; }提前谢谢。
发布于 2017-09-29 00:49:52
请尝试使用这个,这对我很有效
使用SQLite.Net.Attributes的;
[PrimaryKey, AutoIncrement]
public int? Id { get; set; }发布于 2017-08-09 17:53:33
几乎都有同样的情况。所有行都返回id为0
class ToDo : Java.Lang.Object
{
[PrimaryKey, AutoIncrement]
public int ID { get; }除了我只是忘了在属性中键入set;。
有一件事可能会对解决这个问题的人有所帮助,那就是使用GetMapping()方法来获取有关使用CreateTable()创建表时所使用的映射的一些信息。举个例子:
Toast.MakeText(this, db.GetMapping<ToDo>().TableName.ToString(), ToastLength.Long).Show();
Toast.MakeText(this, db.GetMapping<ToDo>().HasAutoIncPK.ToString(), ToastLength.Long).Show();使用这个,我发现我的表上没有设置AutoIncrement (HasAutoIncPK = false)。
发布于 2017-07-18 12:33:34
查看您是否使用CreateComand(query)和ExecuteNonQuery()方法创建了该表。如果是这种情况,请使用CreateTable<Type>()方法创建表。通过所述方法在创建表时初始化主键和自动增量属性
https://stackoverflow.com/questions/41762097
复制相似问题