2013-08-20 104 views
7

我在我的项目中使用SQLite并连接到数据库我使用sqlite-net库。我创建了一个模型:查询bool列总是返回false

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

    public string Name { get; set; } 

... 

    public bool IsDefault { get; set; } 
} 

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

var result = dc.Table<Product>().ToArray(); 

每条记录​​都将IsDefault设置为false。 插入一条记录可以正常工作,但是查询不会。

当我将列类型更改为布尔值时?在模型中,它返回null。

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

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

它返回我的记录正确的号码,但即便如此,数组中的每个项目都有ISDEFAULT设置为false。

+0

直流对象的类型是SQLiteConnection的。表 - 它是括号中给出的类型的可查询接口(它是sqlite-net的一部分) – ksalk

+1

我刚刚检查了sqlite-net库并发现它做了什么,你是否尝试过将它用作整数并将其转换为bool?在源代码上,它似乎没有在任何地方定义过bool。 – Prix

+0

是的,我试图改变类型为int - 在这种情况下,它总是返回0. – ksalk

回答