我正在尝试将Web服务的响应持久保存到本地Realm数据库中。
问题是两个对象之间存在关系。但由于Realm不支持具有IList类型的setter属性,因此我很难从反序列化的JSON响应中保存关系。
public class Report : RealmObject
{
[PrimaryKey]
public int Id { get; set; }
.....
public IList<Contact> Contacts { get; }
}
然后我的相关对象:
public class Contact : RealmObject
{
[PrimaryKey]
public int Id { get; set; }
....
}
在我打电话给网络服务时,我试图坚持回复:
var response = await client.GetStringAsync(baseURL + @"Reports");
var reports= JsonConvert.DeserializeObject<List<Report>>(response);
realm.Write(() =>
{
foreach (var report in reports)
{
realm.Add(report, update: true);
}
});
return reports;
现在,由于没有setter支持,因此不会保留联系人。我也无法从响应中的报告中收集联系人以单独添加它们并手动保持关系。
JSON响应如下所示:
{
"Id": 35558,
....,
"contacts": [
{
"Id": 125254,
是否有一个已知的解决方案或我是否采取了错误的方式?