swift GRDB class中某个字段不映射到表中如何处理
如果你想在 Swift GRDB 类中定义一个字段,但是不希望它映射到实际的表中,可以使用 @transient 属性包装字段。例如:
class MyModel: Record {
var id: Int64?
var name: String
@transient var tempData: Data
init(id: Int64?, name: String, tempData: Data) {
self.id = id
self.name = name
self.tempData = tempData
super.init()
}
override class var databaseTableName: String {
return "my_table"
}
override func encode(to container: inout PersistenceContainer) {
container["id"] = id
container["name"] = name
// 不需要映射到表中的字段不需要在这里编码
}
override func didInsert(with rowID: Int64, for column: String?) {
id = rowID
}
}
在这个例子中,tempData 字段被标记为 @transient,因此不需要在 encode(to:) 函数中编码。在查询和插入操作中,这个字段被忽略
原文地址: https://www.cveoy.top/t/topic/hore 著作权归作者所有。请勿转载和采集!