2013-08-20 36 views
7

Tôi đang sử dụng SQLite trong dự án của mình và kết nối với DB Tôi sử dụng thư viện sqlite-net. Tôi đã tạo mô hình:Truy vấn cột bool luôn trả về false

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

    public string Name { get; set; } 

... 

    public bool IsDefault { get; set; } 
} 

Có một vài bản ghi trong cơ sở dữ liệu - một số có giá trị cột IsDefault được đặt thành true, một số thành sai. Tuy nhiên, khi tôi cố gắng truy vấn các bản ghi như thế này:

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

mỗi bản ghi có IsDefault được đặt thành false. Chèn một bản ghi hoạt động tốt, nhưng việc truy vấn nó thì không.

Khi tôi thay đổi loại cột thành bool? trong mô hình, nó trả về null.

EDIT ---- gì là lạ là khi tôi thực hiện truy vấn

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

Nó trả tôi số điện thoại chính xác của hồ sơ, nhưng ngay cả như vậy tất cả các mục của mảng có IsDefault thiết lập là false.

+0

đối tượng dc là loại SQLiteConnection. Bảng - đó là giao diện truy vấn cho kiểu được đưa ra trong ngoặc đơn (nó là một phần của sqlite-net) – ksalk

+1

Tôi vừa kiểm tra thư viện sqlite-net và tìm thấy nó làm gì, bạn đã thử sử dụng nó như một số nguyên và đúc nó vào bool? Trên nguồn nó dường như không có bool định nghĩa bất cứ nơi nào. – Prix

+0

Có, tôi đã cố thay đổi kiểu thành int - trong trường hợp này nó luôn trả về 0. – ksalk

Trả lời

Các vấn đề liên quan