Dynamics crm 2011 创建具有optionset类型字段的新实体

Dynamics crm 2011 创建具有optionset类型字段的新实体,dynamics-crm-2011,Dynamics Crm 2011,我有一个html表单,它向使用SOAP web服务连接到CRM的aspx页面发送帖子。页面后面的代码在CRM中创建一个实体。我正在代码隐藏中使用IOOrganizationService 代码看起来像 IOR组织服务服务=(IOR组织服务)服务代理; 实体领导=新实体(“领导”); string fieldValue=string.Empty; foreach(Request.Form.AllKeys中的字符串键) { if(key.Equals(SubmitKey,StringComparis

我有一个html表单,它向使用SOAP web服务连接到CRM的aspx页面发送帖子。页面后面的代码在CRM中创建一个实体。我正在代码隐藏中使用IOOrganizationService

代码看起来像

IOR组织服务服务=(IOR组织服务)服务代理;
实体领导=新实体(“领导”);
string fieldValue=string.Empty;
foreach(Request.Form.AllKeys中的字符串键)
{
if(key.Equals(SubmitKey,StringComparison.InvariantCultureIgnoreCase)==false&&
key.Equals(CRMHostKey、StringComparison.InvariantCultureIgnoreCase)==false&&
key.Equals(redirectErrorURLKey,StringComparison.InvariantCultureInogoreCase)==false&&
key.Equals(redirectSuccessURLKey,StringComparison.InvariantCultureIgnoreCase)==false)
{
如果(!string.IsNullOrEmpty(Request.Form[key]))
{
fieldValue=Request.Form[key].Trim();
}
其他的
{
fieldValue=string.Empty;
}
if(key.Equals(“new_contacttypechoices”,StringComparison.InvariantCultureIgnoreCase))
{
lead[key]=新的KeyValuePair(“电子邮件”,100000000);
//OptionMetadata objOM=GetOptionMetadata(“lead”,“new_contacttypechoices”,字段值,服务);
//铅[键]=objOM;
//lead[key]=100000000;//属性值类型System.Int32不正确
//lead[key]=fieldValue;//属性值类型System.String不正确
}
其他的
{
lead[键]=字段值;
}
}
newLeadID=服务。创建(lead);
}
现场截图

我尝试时出错了

lead[key]=字段值
我尝试时出错了

lead[key]=100000000
我尝试时出错了

lead[key]=新的KeyValuePair(“电子邮件”,100000000);
当我获取OptionMetaData并将其设置为实体时,我会得到一个错误。有没有关于如何使用optionset创建实体的想法


谢谢

这取决于您收到的错误,但如果lead类型为Microsoft.Xrm.Sdk.Entity,则可能需要替换现有值或添加新值

if(lead.Attributes.Contains(key))
{
lead[键]=新选项设定值(100000000);
}
其他的
{
lead.Attributes.Add(键,新选项设置值(100000000));
}

重读时,我注意到你(大概)在评论中写下了错误。在这种情况下,我建议问题是您需要分配一个类型为

Oops-my apols的值,刚刚注意到内联注释