Я пытаюсь сохранить данные в локальной базе данных 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.