我正在用C#创建新的实体记录。问题是我早期绑定的Xrm类期望有问题的Option List的整数值,但我所拥有的只是Option List的字符串值。
所以,这就是我想做的事情。问题是所讨论的“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 );
}
}
答案 0 :(得分:0)
不使用网络服务的方法:
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);
}
}
请注意选项标签中的空格,因为它们会在枚举中删除