1

我正在 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 );
    }
}
4

1 回答 1

0

不使用 Web 服务的方法:

  1. 为选项集生成枚举(这里是你如何做到的)
  2. 一旦你有枚举,只需解析字符串值。像这样的东西:
    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);
        }
    }

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

于 2013-06-07T18:02:47.310 回答