如何将值添加到查找字段?

时间:2014-04-10 07:13:44

标签: c# dynamics-crm-2011 dynamics-crm

我有一个授权“帐户”,其中Microsoft Dynamics CRM中有一些name_field。 除了查找字段之外,还可以插入每个其他字段值。如何在查找中选择现有值????

我使用以下代码为查询字段添加值。但是我没有收到任何错误..

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

我如何更改代码以便在查找字段中选择“主要”值?

3 个答案:

答案 0 :(得分:9)

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

使用早期绑定,您将知道该字段所期望的正确类型之前。

答案 1 :(得分:4)

根据您所描述的内容,帐户类型是一个实体(假设它被称为new_accounttype),带有名称字段(new_name),并且有三个实例名为" Primary"," Secondary& #34;和"其他。" Lookupfieldid是链接到new_accounttype表的外键。这意味着,为了将帐户类型查找设置为" Primary"你需要知道帐户类型实例的guid,其中new_name =" Primary"。

//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);

答案 2 :(得分:0)

获取查找字段值

EntityReference entref = (EntityReference)item.Attributes[attributeName];

var LookupId = entref.Id;

var logicalName = entref.LogicalName;

设置查找字段值

newAccount[attributeName] = new EntityReference(logicalName, LookupId);