LinkedObjects仅适用于领域中的列表吗?

时间:2017-11-05 09:13:12

标签: react-native realm

我想知道是否应该在Contract.worker字段中使用以下合同中的to-one relationship的关联对象< =>工作者架构,因为我无法从Contract.worker获取数据。

我已经尝试过本机反应,但是在循环合约领域对象时Contract.worker对象是空的。

Contract.schema = {
    name: "contract",
    properties: {
        worker: {
            type:'linkingObjects',
            objectType:'worker',
            property:"contracts"
        },
        role:'int'
    }
};

Worker.schema = {
    name: 'worker',
    primaryKey: 'id',
    properties: {
        id:'int'
        name:'string',
        contracts: {type: 'list', objectType: "contract"}
   }
}

realm.objects("contract").map(contract=>{
      console.log(contract.worker) //no worker data
})

但是当我将Contract.worker字段更改为:

Contract.schema = {
    name: "contract",
    properties: {
        worker:{type:'worker'},
        role:'int'
    }
};

我可以从map函数获取工作人员数据。所以我想问一下,我首先使用的是linkingObjects错误吗?我以为这个工人< =>合同模式类似于人< =>除了Contract.worker不是列表之外,文档中的dog模式。但文档说linkingObjects可以指向列表或对象属性。

1 个答案:

答案 0 :(得分:1)

LinkingObject适用于多对多和一对一的关系,但您总是会将链接对象(反向关系)视为多对多关系(列表)

链接对象由Realm自动评估,但您需要自己修改关系的另一面,在最初的示例中,向contracts添加项目会使其显示在worker中(应该是workers)。