7

我在我的项目中使用 SQLite 并连接到我使用 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。

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

var t = dc.Table<Product>().Where(i => i.IsDefault == true).ToArray();

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

4

1 回答 1

2

编辑:

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

你必须使用 Int (0 / 1)

于 2013-08-20T17:02:56.557 回答