Данные Android SQLiteConnection записываются как нулевые - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь сохранить данные в локальной базе данных SQLite на устройствах Android, однако сохраняемые данные объекта имеют значение NULL. Идентификатор устанавливается, но все остальные данные равны нулю.

Первоначально я пытался сохранить объект, который содержал четыре свойства: int, string, string и список. но данные не были сохранены. Я предположил, что это был список, так как при хранении данных в базе данных каждый объект должен иметь свою собственную строку? поэтому я решил разбить список на собственные строки, сохранить их во второй таблице и соединить их с внешним ключом.

        {
            bool confirmed = await DisplayAlert("Confirmation", 
                "Is this Recipe ready to be created?", "Yes", "No");
            if (confirmed)
            {
                //get meat type from picker...
                Enums.MeatType mt = (Enums.MeatType)Enum.Parse(typeof(Enums.MeatType), 
                    pkrRecipeType.SelectedItem.ToString());
                //create recipe object with name, meat type...
                Recipe r = new Recipe(entRecipeName.Text, mt);

                SQLiteConnection conn = new SQLiteConnection(App.FilePath);

                //need to add the recipe to the recipes database
                using (conn) 
                {
                    //create the table if it doesnt exist...
                    conn.CreateTable<Recipe>();
                    //insert the recipe into the table...
                    conn.Insert(r);
                }

                //need to add the ingredients of the recipe to the database
                using (conn) 
                {
                    conn.CreateTable<Ingredient>();

                    foreach (Ingredient i in listOfIngredients)
                    {
                        i.RecipeID = r.Id;
                        conn.Insert(i);
                        conn.Update(i);
                    }
                }

                await Navigation.PushAsync(new MainPage());
            }
        }

Никаких ошибок не возникает, только нулевые значения, когда я пытаюсь получить данные из таблицы. В настоящее время у меня есть две таблицы, рецепт и ингредиенты. Они связаны друг с другом по идентификатору рецепта, и данные рецепта хранятся нормально, но ингредиенты нет.

Также хотелось бы добавить im с использованием Xamarin, SQLiteNetExtensions от TwinCoders.

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