Xamarin.forms 在NoSql中存储扩展的实体
在阿德里安·霍尔(adrian hall)的书中,有一个示例可以获取带有子对象的对象。 在这种情况下,它看起来像这样:Xamarin.forms 在NoSql中存储扩展的实体,xamarin.forms,azure-mobile-services,Xamarin.forms,Azure Mobile Services,在阿德里安·霍尔(adrian hall)的书中,有一个示例可以获取带有子对象的对象。 在这种情况下,它看起来像这样: public class JobDTO : EntityData { public string AgentId { get; set; } public DateTimeOffset? StartTime { get; set; } public DateTimeOffset? EndTime { get; set; } public stri
public class JobDTO : EntityData
{
public string AgentId { get; set; }
public DateTimeOffset? StartTime { get; set; }
public DateTimeOffset? EndTime { get; set; }
public string Status { get; set; }
public string Description { get; set; }
public virtual CustomerDTO Customer { get; set; }
public virtual List<EquipmentDTO> Equipments { get; set; }
}
公共类JobDTO:EntityData
{
公共字符串AgentId{get;set;}
公共DateTimeOffset?开始时间{get;set;}
公共DateTimeOffset?EndTime{get;set;}
公共字符串状态{get;set;}
公共字符串说明{get;set;}
公共虚拟客户到客户{get;set;}
公共虚拟列表设备{get;set;}
}
正如您所看到的,有一个客户是复杂的数据和多个设备
在客户端,我们可以在nosql离线存储中存储这样的复杂数据吗?是的,为什么不呢。
只需按照此文档使用离线存储即可
是的,为什么不呢。
只需按照此文档使用离线存储即可
在客户端,我们可以在nosql离线存储中存储这样的复杂数据吗
根据你的描述,我查过阿德里安·霍尔的书。此外,我还测试了类似的代码,复杂的数据可以存储在SQLite离线存储中,如下所示:
对于脱机同步,当将本地作业表推送到远程时,服务器端需要忽略客户
和设备
之间的关系,如下所示:
//对于传入请求,忽略关系
cfg.CreateMap()
.ForMember(作业=>job.Customer,map=>map.Ignore())
.ForMember(job=>job.devices,map=>map.Ignore());
作为同步作业表的状态:
客户和设备数据都记录在一起。这样做的副作用是确保客户和设备数据是只读的。只能更新作业表中的信息
此外,正如Adrian Hall提到的,他更喜欢单独处理表,并在移动客户端上手动处理关系管理。这会在移动客户端上产生更多的代码,但由于避免了大多数复杂的关系,服务器变得更加简单
在客户端,我们可以在nosql离线存储中存储这样的复杂数据吗
根据你的描述,我查过阿德里安·霍尔的书。此外,我还测试了类似的代码,复杂的数据可以存储在SQLite离线存储中,如下所示:
对于脱机同步,当将本地作业表推送到远程时,服务器端需要忽略客户
和设备
之间的关系,如下所示:
//对于传入请求,忽略关系
cfg.CreateMap()
.ForMember(作业=>job.Customer,map=>map.Ignore())
.ForMember(job=>job.devices,map=>map.Ignore());
作为同步作业表的状态:
客户和设备数据都记录在一起。这样做的副作用是确保客户和设备数据是只读的。只能更新作业表中的信息
此外,正如Adrian Hall提到的,他更喜欢单独处理表,并在移动客户端上手动处理关系管理。这会在移动客户端上产生更多的代码,但由于避免了大多数复杂的关系,服务器变得更加简单