我有两个具有一对多关系的不同类:
class Car: Object {
dynamic var Id = NSUUID().uuidString
dynamic var Name : String = ""
dynamic var FuelCapacity : Int = 0
let FuelRecords = List<FuelRecord>()
override class func primaryKey() -> String? {
return "Id"
}
}
class FuelRecord: Object {
dynamic var Odometer : Float = 0.0
dynamic var LiterPrice : Float = 0.0
dynamic var Date = NSDate()
dynamic var CarObject : Car?
}
保存 FuelRecord 对象时,Fuelrecord 链接到 Car,但是 CarObject 没有链接到 FuelRecord。
如您所见,汽车链接到 0 FuelRecords
但是 FuelRecord 包含 Car 引用
单击此处查看 Realm 浏览器中的 FuelRecords 表
由于这个问题,我无法获取特定汽车的燃油记录。
这就是我将 FuelRecord 保存到数据库的方式。
fuelRecord.LiterPrice = Float(txtLiterPrice.text!)!
fuelRecord.Odometer = Float(txtOdometer.text!)!
fuelRecord.Total = Float(txtTotal.text!)!
fuelRecord.Volume = Float(txtVolume.text!)!
fuelRecord.IsPartial = switchPartial.isOn
let realm = try! Realm()
try! realm.write{
realm.add(fuelRecord)
谢谢!
一对多关系是单向的。要自动查找与汽车关联的所有 FuelRecords,从而使关系双向,您应该使用反向关系。这可以通过 LinkingObjects 来实现。
将 Car 类中的 FuelRecords 声明更改为以下内容:
let FuelRecords = LinkingObjects(fromType: FuelRecord.self, property: "CarObject")
遗憾的是,Realm Browser 仍然不会向您显示反向关系(至少对我来说是这种情况),但是您将能够从代码中查询与汽车相关的所有 FuelRecords。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句