2014-02-17 2 views
3

На окна магазина приложений проекта я получить JSON из веб-сервиса, который выглядит следующим образом: http://paste2.org/jfMJ2AGASQLite не узнавая общий список

и у меня есть эти 2 класса

public class media 
{ 
    public string id { get; set; } 
    public string type { get; set; } 
    public string image { get; set; } 
    public string video { get; set; } 
    public string snapshot { get; set; } 
    public string url { get; set; } 
    public string snapshot_url { get; set; } 
} 

public class artigos 
{ 
    public string menu { get; set; } 
    public string submenu { get; set; } 
    public string title { get; set; } 
    public string subtitle { get; set; } 
    public string description { get; set; } 
    public List<media> media { get; set; } 
} 

и IM создавая SQLite базы данных с:

dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Database.sqlite"); 

//start dB 
using (var db = new SQLite.SQLiteConnection(dbPath)) 
{ 
    db.CreateTable<artigos>(); 
} 

, но я получаю эту ошибку:

Don't know about System.Collections.Generic.List`1[xxxxx.media]

Я делаю что-то не так?

+0

ли вы когда-нибудь найти обходной путь? – bobbyg603

+0

Прошло некоторое время, но если я вспомню, я думаю, что я сохранил строку json с идентификаторами медиа-объектов, что-то вроде [ «1234», «5678», «9012», «3456» ] – Ric

+0

Именно так подход I собирался. Спасибо! – bobbyg603

ответ

2

Sqllite не поддерживает списки. Это означает, что вы не можете иметь

public List<media> media { get; set; } 
+2

Знаете ли вы об этом? – Juan

0

У меня была такая же проблема с межд [], и я сделал это:

[Table(nameof(Folder))] 
public class Folder 
{ 
    public Folder() 
    { 
     // for SQLite 
    } 
    internal Folder(Json.Folder folder) 
    { 
     Id = folder.id; 
     Title = folder.title; 
     Lists = string.Join(",", folder.list_ids); 
    } 

    [PrimaryKey] 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public string Lists { get; set; } 
    public int[] ListsArray => Lists.Split(',').Select(x => int.Parse(x)).ToArray(); 
} 
Смежные вопросы