如何使用 Apex 中的查找字段检索相关对象?

How do I retrieve a related object using a Lookup field in Apex?

我有一个插入机会的触发器:

trigger OpportunityInsertTrigger on Opportunity (before insert) {
    System.debug('Triggered on insert of opportunity. Updating blockchain...');
    for (Opportunity opp : Trigger.new) {
        List<DNBCompany__c> retrievedCompany = [SELECT Id, Name, Duns__c FROM DNBCompany__c WHERE Id = :opp.DNBCompany__c];
        DNBCompany__c company = retrievedCompany.get(0);
        String duns = (String) company.get('Duns__c');            
    }
}

我有一个名为 DNBCompany 的自定义对象,它通过机会中的查找关系 (DNBCompany__c) 进行链接。

如何检索与 opp 关联的 DNBCompany?

[编辑以反映下面的答案]

你可以这样做:

for (Opportunity opp : Trigger.new)
{       
    DNBCompany__c retrievedCompany = [SELECT Id, Name FROM DNBCompany__c WHERE Id = :opp.DNBCompany__c];
}

由于查找字段将是您要检索的公司的 Id,您可以使用内联 SOQL 查询来取回关联对象。

请记住,您必须在 SOQL 查询中引用您希望处理的任何其他字段。