Не удается передать объект ингредиента новому объекту рецепта - PullRequest
0 голосов
/ 13 апреля 2020

Я создал 2 таблицы в базе данных SQLite - Ingredients and Recipes.

Объект Recipe, естественно, использует объекты Ingredient.

2 вещи, которые я пытаюсь сделать: получить объект ингредиента из моей базы данных ингредиентов и установите этот объект ингредиента в качестве переменной при создании нового рецепта.

// Эти данные ингредиента были только для целей тестирования - это все равно не будет работать. Этот раздел просто пытается установить объект ингредиента как переменную Ingredient1 в объекте Recipe.

            InventoryItem theIngredient= new InventoryItem();

            theIngredient.ID = 500;
            theIngredient.Name = "Name";
            theIngredient.Size = "None";
            theIngredient.Stock = "None";


            Recipe recipe = new Recipe()
            {
                ID = (maxPK == null ? 1 : maxPK.ID + 1),
                Name = nameEntry.Text,
                Ingredient1 = theIngredient
            };
        db.Insert(recipe);

Это ошибка, которую я получаю:

System.NotSupportedException Message = Don ' не знаю о PantryShopper.Models.InventoryItem

Это даже не совсем то, что я хочу сделать ...

Что я хочу сделать, это выбрать ингредиент из источника, который получен по базе данных, а затем использовать выбранный ингредиент из сборщика в качестве ингредиента, переданного в новый рецепт. Тем не менее, на этом я не могу получить доступ к этому элементу из базы данных, как объект ингредиента. Я думал о том, как преобразовать этот объект в данные для базы данных, могу ли я вернуть его из базы данных в качестве исходной версии объекта, или мне нужно перестроить его (что я тоже пытался сделать)?

        InventoryItem theIngredient= new InventoryItem();

        ingredient1Picker = new Picker();
        ingredient1Picker.ItemsSource = db.Table<InventoryItem>().OrderBy(x => x.Name).ToList();
        stackLayout.Children.Add(ingredient1Picker);

        inventoryItem = ingredient1Picker.SelectedItem;

Затем установите ингредиент для выбранного в данный момент предмета в сборщике. Тем не менее, я получаю сообщение об ошибке: Не удается неявно преобразовать тип «объект» в «PantryShop.Models.InventoryItem». Существует явное преобразование (вам не хватает приведения?)

В любом случае, это мой первый пост здесь. Любая помощь высоко ценится! Приветствия.

1 Ответ

0 голосов
/ 13 апреля 2020

Однако я получаю сообщение об ошибке: Не удается неявно преобразовать тип 'объект' в 'PantryShop.Models.InventoryItem,' Существует явное преобразование (вы пропустили приведение?)

как говорит ошибка, вам нужно явно привести SelectedItem (объект) к InventoryItem

inventoryItem = (InventoryItem)ingredient1Picker.SelectedItem;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...