One of the most startling things I ever learned from @BobBuzzard is that you can update a lookup by using the name pointing field. At least, I thought that's what I learned, until a recent debate cast some doubt on that finding. That debate went:
Me: What BB says is that you can in fact use the
__rfields to specify the relationship using external Id. It looks to me like you're saying you can't use the
__rfields to specify the relationship?
@AdrianLarson That's not what I read in his post. A
__ris a reference (pointer) to the other object. An external Id is an alternate key where you can specify the value at both sides (rather than requiring the Id that is only available after the first object is inserted.
Me: He essentially says you can
insert new Contact(FirstName='Bob', LastName='Buzzard', Account=new Account(External__c='key'));. He's using standard relationships, but that means you can set the lookup via the pointer. No?
@AdrianLarson No, I'm confident you can't. Suggest you try it if you wan [sic] to be sure.
I couldn't find any such material on our exchange, so I figured this is a good time to vet this seemingly amazing finding and make it more discoverable here. It's over four years old and looks like it is still not common knowledge.