Запрос столбца bool всегда возвращает false

7

Я использую 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.

  • 0
    Объект DC имеет тип SQLiteConnection. Таблица - это запрашиваемый интерфейс для типа, указанного в скобках (это часть sqlite-net)
  • 1
    Я только что проверил библиотеку sqlite-net и обнаружил, что она делает, вы пытались использовать ее как целое число и приводить ее к bool? На источнике это, кажется, нигде не определил bool.
Показать ещё 2 комментария
Теги:
database
sqlite-net

1 ответ

2

Отредактировано:

SqlLite имеет несколько ограниченных типов, bool не является одним из них: http://www.tutorialspoint.com/sqlite/sqlite_data_types.htm

Вы должны использовать Int (0/1)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню