私は Xamarin モバイル アプリを構築しており、残りの API から取得する一連の製品を持っています。各商品には n 個の画像を含めることができます。SQLite-Net Extensions を使用してテーブルの関係を設定しました。ただし、データベースに値を挿入すると、Images フィールドの Product テーブルには null 値が含まれ、Image テーブルには空の値が含まれます。
私のモデル
public class Product
{
[SQLite.Net.Attributes.PrimaryKeyAttribute]
public int ID { get; set; }
public string Name { get; set; }
[OneToMany]
public List<Image> Images { get; set; }
}
public class Image
{
[SQLite.Net.Attributes.PrimaryKeyAttribute, SQLite.Net.Attributes.AutoIncrement]
public int ID { get; set; }
[ForeignKey(typeof(Product))] // Specify the foreign key
public int ProductID { get; set; }
public string Link { get; set; }
}
値を挿入するために使用しているコード。
var db = new SQLiteConnection(new SQLitePlatformAndroid(), path);
var info = db.GetTableInfo("ProductDB");
db.CreateTable<ProductDB>();
db.CreateTable<ImageDB>();
db.DeleteAll<ProductDB>();
db.DeleteAll<ImageDB>();
db.InsertAllWithChildren(data);
db.UpdateAll(data);
これは、jsonをオブジェクトにデシリアライズする方法です
public async Task<List<ProductDB>> GetAllProducts()
{
var httpClient = GetHttpClient();
var response = await httpClient.GetAsync(ServiceEndPoints.GetFilmsUri).ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var content = response.Content;
string jsonString = await content.ReadAsStringAsync().ConfigureAwait(false);
return JsonConvert.DeserializeObject<List<ProductDB>>(jsonString);
}
return null;
}
誰かが私が間違っていることを特定するのを手伝ってくれれば、それは素晴らしいことです.