Как настроить структуру базы данных sqlite при разработке приложений для Android с использованием наследования - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь настроить структуру базы данных в приложении для Android, которое я разрабатываю.У меня проблема в том, что 3 объекта / модели наследуются от модели, как показано ниже.Когда я вставляю модель ShoppingItem с помощью sqliteconnection.inserttable (), он создает только 2 столбца этой модели, игнорируя свойства наследующих моделей.Это означает, что я не могу вставить Fruit в таблицу ShoppingItem, потому что она не содержит столбцы для хранения информации.Когда я пытаюсь вставить фрукт в таблицу shoppingItem, возникает исключение ограничения.Когда я сделал это вне разработки приложения, таблица также содержит столбец дискриминатора, в котором указано, что это за объект.Это возможно в базе данных 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; }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...