2013-08-20 16 views
7

Sto usando SQLite nel mio progetto e per connettermi a DB uso la libreria sqlite-net. Ho creato un modello:La query sulla colonna bool restituisce sempre false

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

    public string Name { get; set; } 

... 

    public bool IsDefault { get; set; } 
} 

ci sono alcuni record nel database - un po 'di valore della colonna hanno IsDefault impostata su true, alcuni a falso. Tuttavia, quando provo a interrogare record come questo:

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

ogni record ha IsDefault impostato su false. L'inserimento di un record funziona bene, ma non lo richiede.

Quando ho cambiato il tipo di colonna in bool? nel modello, restituisce null.

EDIT ---- Quello che è strano è quando eseguo interrogazione

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

Mi ritorna corretto numero di record, ma anche così ogni elemento di array ha IsDefault impostato su false.

+0

oggetto dc è di tipo SQLiteConnection. Tabella - è un'interfaccia interrogabile per il tipo indicato tra parentesi (è parte di sqlite-net) – ksalk

+1

Ho appena controllato la libreria sqlite-net e ho trovato quello che fa, hai provato ad usarlo come numero intero e a lanciarlo in bool? Sulla fonte non sembra che il bool sia stato definito da nessuna parte. – Prix

+0

Sì, ho provato a cambiare il tipo in int - in questo caso restituisce sempre 0. – ksalk

risposta

Problemi correlati