Почему я не могу прочитать атрибут TEXT из SQLITE TABLE в приложении? - PullRequest
0 голосов
/ 23 января 2020

Я эту таблицу в Sqlite db3 :

Table definition

с данными, которые я могу прочитать с помощью простого запроса в SQLite Studio SQL редактор :

Select Testo FROM Contenuto

Query result

Как видите, мне нужен только атрибут Testo.

Когда я пытаюсь выполнить один и тот же запрос или получить все атрибуты (Id, IDSezione, Indice, Testo), в моем приложении xamarin Forms результат будет иметь все, кроме Testo , (Contenuti - это список объектов Contenuto)

Application result

Это мой метод БД:

public Task<List<Contenuto>> GetContenutoAsync(int idsezione)
{
        return Database.Table<Contenuto>().Where(i => i.IDSezione == idsezione).ToListAsync();
}

Так что мне интересно в чем проблема и если кто-то может мне помочь. Я думал, что это размер ограничения по размеру, но он делает то же самое, используя только символ вместо длинного текста, как мне нужно.

class

[Table(nameof(Contenuto))]
public class Contenuto
{
    public int ID { get; set; }

    public int IDSezione { get; set; }

    public int Indice { get; set; }

    public string Testo { get; set; }
}

Спасибо, Риккардо

1 Ответ

0 голосов
/ 24 января 2020

Вот как я решаю свою проблему:

Первоначально атрибут Testo таблицы назывался Contenuto в качестве имени таблицы. Не замечая этого, я все равно добавил БД в проекты.

Я заметил эту проблему при первом запуске приложения (возникло исключение, поскольку вы можете использовать имя таблицы в качестве атрибута в запросе), и отредактировал БД в общем проекте .

При этом не будет обновляться файл , связанный с БД Android / iOS. Это была настоящая проблема в моем методе, я искал атрибут Testo, но его там не было.

Поэтому, когда вы добавляете БД в качестве нового элемента в проекты android или iOS, не забудьте установить его свойство в Always copy, делая это всегда будет обновлять связанную БД при сборке приложения.

...