如何使用类创建SQLite表并忽略它是List <childrenobjectmodel>的事实?

时间:2016-07-16 03:39:47

标签: sqlite xamarin

我正在使用一个类来生成一个SQLite表,但是我也希望将它作为ItemSource用于两个级别的ListView(带子项的列表视图)。

这适用于ListView:

public class ParentModel:List<ChildrenModel>
{
    [PrimaryKey]
    public string uid { get; set; }
    public string name { get; set; }

    [Ignore]
    public string attributeA { get; set; }

    public ParentModel() {

    }

}

但当我执行mySQLiteConnection.CreateTable<ParentModel>();时会抛出异常,因为Object是一个List&lt;&gt;。

我可以[忽略]属性,但有没有办法忽略这个类是List&lt;&gt;?

的事实

我也可以在模型中创建一个List变量并[忽略]它,但这对ListView不起作用。

我能想到的唯一解决方案是创建两个具有相同属性的类,一个是List&lt;&gt;而另一个没有。

但我真的不喜欢这个想法。

1 个答案:

答案 0 :(得分:1)

不确定为什么要继承List<ChildrenModel>。您应该使ChildrenModel类成为可以创建表的类,然后该表将包含所有ChildrenModel项。然后在ParentModel中,您可以拥有类型为List<ChildrenModel>的公共属性,您可以从ChildrenModel表中加载该属性。您可能希望忽略该属性,因为SQLite无法存储List。然后,您可以通过List<ChildrenModel>课程中ParentModel的公共属性访问您填充的列表。无论如何,这就是我要做的。