查询bool列始终返回false

ksa*_*alk 7 c# database sqlite sqlite-net

我在我的项目中使用SQLite并连接到DB我使用sqlite-net库.我创建了一个模型:

internal class Product
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }

    public string Name { get; set; }

...

    public bool IsDefault { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

数据库中有一些记录 - 有些记录的IsDefault列值设置为true,有些记录为false.但是,当我尝试查询这样的记录时:

var result = dc.Table<Product>().ToArray();
Run Code Online (Sandbox Code Playgroud)

每条记录都将IsDefault设置为false.插入记录工作正常,但查询不行.

当我将列类型更改为bool时?在模型中,它返回null.

编辑----当我执行查询时,奇怪的是什么

var t = dc.Table<Product>().Where(i => i.IsDefault == true).ToArray();
Run Code Online (Sandbox Code Playgroud)

它返回正确的记录数,但即使如此,每个数组项都将IsDefault设置为false.

use*_*113 2

编辑:

SqlLite 有一些有限的类型,bool 不是其中之一: http ://www.tutorialspoint.com/sqlite/sqlite_data_types.htm

你必须使用 Int (0 / 1)