Я использую SQLite в своем проекте и для подключения к DB я использую библиотеку 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.
Отредактировано:
SqlLite имеет несколько ограниченных типов, bool не является одним из них: http://www.tutorialspoint.com/sqlite/sqlite_data_types.htm
Вы должны использовать Int (0/1)