Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms 在NoSql中存储扩展的实体_Xamarin.forms_Azure Mobile Services - Fatal编程技术网

Xamarin.forms 在NoSql中存储扩展的实体

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

在阿德里安·霍尔(adrian hall)的书中,有一个示例可以获取带有子对象的对象。 在这种情况下,它看起来像这样:

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提到的,他更喜欢单独处理表,并在移动客户端上手动处理关系管理。这会在移动客户端上产生更多的代码,但由于避免了大多数复杂的关系,服务器变得更加简单