如何向查找字段添加值
本文关键字:添加 字段 查找 | 更新日期: 2023-09-27 17:57:38
我有一个实体"帐户",它在Microsoft Dynamics CRM中有一些名称字段。除了查找字段之外,还可以每隔一个字段插入一个值。如何在查找中选择现有值????
我使用以下代码为查找字段添加值。。但是我没有任何错误。。
Account acc = new Account();
acc.Attributes["name"] = "Ram"; // this values got inserted
acc.Attributes["age"] = "22"; // this values got inserted
acc.Attributes["lookupfieldid"] = "Sampletext";
service.Create(acc); // to create account
为了在查找字段中选择"主要"值,我需要如何更改代码?
CRM 2011中的查找字段为EntityReference
,这意味着您需要知道查找所指向实体的LogicalName
和记录的Id
。
所以你的代码将是:
Account acc = new Account();
acc.Attributes["name"] = "Ram"; // this values got inserted
acc.Attributes["age"] = "22"; // this values got inserted
acc.Attributes["lookupfieldid"] = new EntityReference("contact", contactId); // if lookupfieldid is pointing to contact entity
service.Create(acc); // to create account
一个考虑因素:你写了
Account acc = new Account();
我不知道您使用的是早绑定(指crmsvcutil.exe
生成的类)还是晚绑定(在这种情况下,您将编写Entity acc = new Entity("account");
)
但如果使用早期绑定,语法将类似于:
Account acc = new Account();
acc.Name = "Ram"; // this values got inserted
acc.Age = "22"; // this values got inserted
acc.LookupFieldId = new EntityReference("contact", contactId); // if lookupfieldid is pointing to contact entity
service.Create(acc); // to create account
使用早期绑定,您将提前知道字段所期望的正确类型。
根据您所描述的,帐户类型是一个带有名称字段(new_name)的实体(假设它被称为new_accounttype),有三个名为"Primary"、"Secondary"answers"Other"的实例。Lookupfieldid是一个链接到new_account类型表的外键。这意味着,为了将帐户类型查找设置为"主要",您需要知道帐户类型实例的guid,其中new_name="主要"。
//Retrieve "Primary" account type
QueryExpression query = new QueryExpression("new_accounttype");
query.Criteria.AddCondition("new_name", ConditionOperator.Equal, "Primary");
Entity accountType = service.RetrieveMultiple(query).Entities.First();
//Set the lookup as Guido described above
Account acc = new Account();
acc.Attributes["name"] = "Ram";
acc.Attributes["age"] = "22";
acc.Attributes["lookupfieldid"] = new EntityReference("new_accounttype", accountType.Id);
service.Create(acc);
获取查找字段的值
EntityReference entref = (EntityReference)item.Attributes[attributeName];
var LookupId = entref.Id;
var logicalName = entref.LogicalName;
设置查找字段的值
newAccount[attributeName] = new EntityReference(logicalName, LookupId);