如何使用Linq在新的CRM 2011实体记录上设置选项列表值

本文关键字:记录 设置 选项 列表 实体 2011 Linq 何使用 CRM | 更新日期: 2023-09-27 18:17:13

我正在c#中创建新的实体记录。问题是我的早期绑定的Xrm类期望得到所讨论的选项列表的整数值,但我所拥有的只是选项列表的字符串值。

所以,这就是我想做的。问题是"OptionListValue"的问题是整数值。你知道;那个自动创建的巨大的

我唯一的方法是找出那个特定选项的值吗?如果是,我使用什么API来获取它,以及如何使用它?我希望有一些Linq方法可以做到这一点。但我可能假设得太多了。

public void CreateNewContactWithOptionListValue(string lastName, string theOptionListValue)
{
    using ( var context = new CrmOrganizationServiceContext( new CrmConnection( "Xrm" ) ) )
    {
        var contact = new Contact()
        {
            LastName = lastName,
            OptionListValue = theOptionListValue // How do I get the proper integer value from the CRM?
        };
        context.Create( contact );
    }
}

如何使用Linq在新的CRM 2011实体记录上设置选项列表值

不使用web服务的方法:

  1. 为选项集生成枚举(这是你如何做到的)
  2. 一旦你有enum,只需解析字符串值。像这样:
    public void CreateNewContactWithOptionListValue(string lastName, string theOptionListValue)
    {
        using (var context = new CrmOrganizationServiceContext(new CrmConnection("Xrm")))
        {
            new_customoptionset parsedValue;
            if (!Enum.TryParse<new_customoptionset>(theOptionListValue, out parsedValue))
            {
                throw new InvalidPluginExecutionException("Unknown value");
            }
            var contact = new Contact()
            {
                LastName = lastName,
                OptionListValue = new OptionSetValue((int)parsedValue)
            };
            context.Create(contact);
        }
    }

注意选项标签中的空格,因为它们在枚举

中被删除了。