- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 261
 
Open
Description
I have a structure in may app where I have a parent object:
open class BaseContact: CoreStoreObject {
    @Field.Stored("externalId")
    open var externalId: Int?
    @Field.Stored("isUser")
    open var isUser: Bool = false    
    // Other props
}A child and another entity:
final public class Contact: BaseContact {
    // Other props
    @Field.Relationship("userDL", inverse: \DBS.UserDL.$contact)
    public var userDL: DBS.UserDL?
    // Other props
}
final public class UserDL: CoreStoreObject {
    // Other props
    @Field.Relationship("contact")
    public var contact: DBS.Contact?
    // Other props
}When trying to fetch Contact specifically by isUser property I get an error:
func contactIsUser() -> DBS.Contact? {
    try? fetchOne(where: \DBS.Contact.$isUser == true)
}Binary operator '==' cannot be applied to operands of type 'KeyPath<DBS.Contact, FieldContainer<DBS.BaseContact>.Stored<Bool>>' and 'Bool'
Same thing with:
func currentUserDL(withContactID externalId: Int?) -> DBS.UserDL? {
    try? fetchOne(where: \.$contact ~ \.$externalId == externalId)
}There's a different error but in the same vein:
Operator function '~' requires the types 'Optional<DBS.Contact>.DestinationObjectType' (aka 'DBS.Contact') and 'FieldContainer<DBS.BaseContact>.Stored<Int?>.ObjectType' (aka 'DBS.BaseContact') be equivalent
Metadata
Metadata
Assignees
Labels
No labels