我在项目中使用SQLite并连接到DB我使用sqlite-net库。我创建了一个模型:
internal class Product
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
...
public bool IsDefault { get; set; }
}
数据库中有一些记录 - 有些记录将IsDefault列值设置为true,有些记录为false。但是,当我尝试查询这样的记录时:
var result = dc.Table<Product>().ToArray();
每条记录都将IsDefault设置为false。 插入记录工作正常,但查询不会。
当我将列类型更改为bool时?在模型中,它返回null。
EDIT ---- 什么是奇怪的是当我执行查询
var t = dc.Table<Product>().Where(i => i.IsDefault == true).ToArray();
它返回正确的记录数,但即便如此,每个数组项都将IsDefault设置为false。
答案 0 :(得分:2)
编辑:
SqlLite有一些有限的类型,bool不是其中之一: http://www.tutorialspoint.com/sqlite/sqlite_data_types.htm
你必须使用Int(0/1)