Realm LinkingObjects属性未出现在Realm Explorer中

时间:2016-12-12 22:34:11

标签: database xcode realm code-first

我是iOS开发和领域的新手,在代码优先建立数据库方面拥有丰富的经验。

我在课程常规锻炼之间有一对多的关系,其中一个例程可能包含许多不同的锻炼。这是我的课程:

class Routine: Object {
    //Properties
    dynamic var id : Int = 0
    dynamic var routineName : String = ""

    //Relationships
    let workouts = LinkingObjects(fromType: Workout.self, property: "routine")

    //Primary Key Declaration
    override static func primaryKey() -> String? {
        return "id"
    }
} 
class Workout: Object {
    //Properties
    dynamic var id : Int = 0
    dynamic var workoutName : String = ""

    //Relationships
    let exercises = List<Exercise>()
    dynamic var routine : Routine?

    //Primary Key Declaration
    override static func primaryKey() -> String? {
        return "id"
    }
}

我这样做是为了达到理想的关系吗?当我构建它并查看领域浏览器时,Routine中的属性workouts不会出现。

感谢。

1 个答案:

答案 0 :(得分:1)

它的预期行为。 LinkingObjects表示通过属性关系链接到其拥有的模型对象的零个或多个对象。此外,它是一种自动更新容器类型。添加新的workouts对象并指定Workout属性时,routine会自动更新。

LinkingObjects被视为&#34;查询&#34;而不是内部持久的财产。访问workouts属性时,Realm会查询包含匹配的Workout个对象的routine个对象。这就是Realm Browser中没有显示workouts属性的原因。