我使用Xamarin上的Visual Studio 2015年本SQLite的插件:https://github.com/praeclarum/sqlite-net使用CREATETABLE <T>(CreateFlags.FullTextSearch4)不会自动增量PK
这里是我的问题的算法,并解释:
public class MyModel
{
[PrimaryKey, AutoIncrement]
public int _id { get; set; }
public string bla { get; set; }
public string ble { get; set; }
public MyModel()
{
}
}
然后:
conn.CreateTable<MyModel>(CreateFlags.FullTextSearch4);
var item = new MyModel();
var insertCount = conn.Insert(item);
以上代码为insertCount返回1和item._id总是更新,它应。 但是当我稍后查询表格时,所有行的_id始终为0。例如:
var tokens = mySearchBar.Text;
string query = "SELECT * FROM MyModel WHERE MyModel MATCH '" + tokens + "'";
List<MyModel> result = conn.Query<MyModel>(query);
这似乎是工作,但感觉不对,它似乎并没有被返回所有可能的结果。但主要的问题是每个_id都返回0。我可以看看:
var bli = conn.Query<MyModel>("SELECT * FROM MyModel");
所有行_id都是0.任何想法为什么以及如何修复它?
如果我创建没有fts4标志的表,我没有任何问题。但是,我不能做MATCH搜索。
感谢
钉住它。我的解决方案是添加一个由我自己创建的字符串ID并将其设置为pk。 – Dpedrinha