当我尝试将新的自定义对象添加到exsting lead时,外键关系无效

Nao*_*ino 4 salesforce foreign-key-relationship apex-code

我有一个Lead和一个名为Social Account的自定义对象(API Name = Social_Account__c).

我建立了如下关系:Lead是社交账户的父母.所以领导有很多社交账户.

在社交帐户中,我创建了一个名为Lead(数据类型:查找)的自定义字段来建立关系.

这是一个查找细节:

API名称:Lead__c

与铅有关

子关系名称:Social_Accounts

相关清单标签:社会账户

如果有一个具有相同电子邮件地址的潜在客户,我想向现有潜在客户添加新的社交帐户.


Social_Account__c social_account = new Social_Account__c();
/*add whatever fields on social_account*/

List<Lead> leads =[select Id from Lead where Email =:emailAddress ];
if(leads.size()>0)
{ 
    Lead existing_lead = new Lead(Id = leads[0].id);
    //ideally i would like to do something like this
    social_account.Lead__c.id = existing_lead.id; //this is where I get an error from

    insert social_account;
    update existing_lead;
}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息:

错误:编译错误:外键关系无效:Social_Account_ c.Lead _c

我究竟做错了什么?我将不胜感激任何建议.

谢谢

eye*_*eam 7

您不能通过点(.)运算符与更新来"完成关系",只需读取数据即可.

把你social_account.Lead__c.id = existing_lead.Id; 改成social_account.Lead__c = existing_lead.Id;

应该是所有需要的.Salesforce关系可以

通过直接修改您创建的字段来设置:Social_Account__c.Lead__c放置您想要指向的对象的Id.

通过稍微修改字段名称并使用点来获取(探索),在您的情况下可能是这样Social_Account__c.Lead__r.(whatever fields on Lead you want).

"_c"和"_ r"用于自定义对象,对于标准对象,例如,可以使用Opportunity.AccountId字段进行设置,但如果要浏览到帐户,则键入Opportunity.Account.Name.


如果你不记得它 - 不用担心,我也是;)通常当我得到这样的编译错误时,我会尝试使用查询构建器(在Apex Explorer或Eclipse插件中).我点击对象的层次结构,它是孩子,它是父母等,通常可以直接在我的Apex代码中使用生成的查询片段.