我正在尝试在我正在开发的Android应用程序中建立数据库结构。问题是3个对象/模型从模型继承,如下所示。当我使用sqliteconnection.inserttable()插入ShoppingItem模型时,它将仅创建该模型上的2列,而忽略继承模型上的属性。这意味着我无法将Fruit插入ShoppingItem表中,因为它不包含用于保存信息的列。当我尝试将水果插入shoppingItem表中时,将引发约束异常。当我在应用程序开发之外完成此操作时,该表还包含一个discriminator列,该列说明了它是哪种对象。在Android数据库中有可能吗?
public class ShoppingItem: Java.Lang.Object
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
[ManyToMany(typeof(ShoppingListItem))]
public List<ShoppingList> ShoppingLists { get; set; }
}
[Table("Fruits")]
public class Fruit : ShoppingItem
{
public int NumberOfTimesPicked { get; private set; }
public Fruit()
{
NumberOfTimesPicked = 0;
}
public void IncrementTimesPicked()
{
NumberOfTimesPicked++;
SQLiteConnection db = new SQLiteConnection(Database.DataStore.DBPATH);
db.Update(this);
}
}
[Table("Ingredients")]
public class Ingredient : ShoppingItem
{
public override string ToString()
{
return Name;
}
[ManyToMany(typeof(Recipe))]
public List<Meal> Meals { get; set; }
}
[Table("MiscItems")]
public class MiscItem : ShoppingItem
{
public string Category { get; set; }
}