我有一个代码,用于检查用户的inquery数据库a, 如果用户不存在,那么代码将在Contact中创建一个新用户,
以下只是代码的一部分:
newcontact = [SELECT Id, FirstName FROM Contact WHERE Contact.Email =inquery.email__c];
if(newcontact.size() == 0) {
Account[] aa = [SELECT Id FROM Account WHERE Name = :inquery.Institution__c];
contact = new Contact();
contact.FirstName = inquery.First_Name__c;
contact.LastName = inquery.Last_Name__c;
contact.Email = inquery.email__c;
contact.AccountId = aa.Id;
try {
insert contact; // inserts the new record into the database
} catch (DMLException e) {
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error creating new contact'));
return null;
}
我正在尝试将该用户与现有帐户相关联?
但是以下行给了我一个错误:
contact.AccountId = aa.Id;
哪个是
Initial term of field expression must be a concrete SObject: LIST<Account> at line
aa.size()返回1,应该如此 由于该帐户存在,
有人可以告诉我有什么不对吗?
由于
答案 0 :(得分:1)
如果您的查询返回0行,则此行contact.AccountId = aa.get(0).Id;
将失败。确保将代码包装在if (aa.size() > 0)
子句中,以确保在所有情况下都能正确执行。
答案 1 :(得分:0)
好的我修好了,如下:
contact.AccountId = aa.get(0).Id;
最佳