Обновить атрибут с NULL - PullRequest
1 голос
/ 31 августа 2011

Я пытаюсь обновить Entity, который является OptionSetValue, значения, из которых он будет обновляться, находятся в radioboxlist, и один из параметров - пустой / ноль Есть ли способ передать нулевое значение в CRM Entity для обновления?

Это список радиобокса:

<asp:RadioButtonList RepeatDirection="Vertical" Width="250px" CellPadding="0" CellSpacing="0" ID="rblChangeButtonType" runat="server" AutoPostBack="False" SelectedValue='<%# Bind("EvalVal") %>'>
  <asp:ListItem Value="" Text="No Evaluation Yet" />
  <asp:ListItem Value="100000000" Text="A - Pending order or visit" />
  <asp:ListItem Value="100000001" Text="B - 75% probability of a sale in 6 months" />
  <asp:ListItem Value="100000002" Text="C - 50% probability of a sale in 12 months" />
  <asp:ListItem Value="100000004" Text="F - 0% probability of a sale" />
</asp:RadioButtonList>

И этот код я использую для обновления сущности, он работает для всех значений, кроме пустого.

int colderEval = int.Parse(rblChangeButtonType.SelectedValue.ToString());

OptionSetValue selectedEval = new OptionSetValue(colderEval);

Entity opportunity = new Entity("opportunity") { Id = oppGuid };
opportunity["new_colderevaluation"] = selectedEval;

Любая идея, как передать пустой также?

Ответы [ 3 ]

2 голосов
/ 31 августа 2011

Просто проверьте ваше специальное пустое значение и затем установите поле в ноль, если необходимо:

Entity opportunity = new Entity("opportunity") { Id = oppGuid };

if (rblChangeButtonType.SelectedValue.ToString() != string.Empty)
{
  int colderEval = int.Parse(rblChangeButtonType.SelectedValue.ToString());
  OptionSetValue selectedEval = new OptionSetValue(colderEval);

  opportunity["new_colderevaluation"] = selectedEval;
}
else
{
  opportunity["new_colderevaluation"] = null;
}
1 голос
/ 31 августа 2011

Вы можете установить атрибут на нуль, например так:

Entity opportunity = new Entity("opportunity") { Id = oppGuid };
opportunity["new_colderevaluation"] = null;
0 голосов
/ 01 сентября 2011

Я добавил несколько простых методов в мой статический класс CrmUtil, который я использую довольно часто. Это может быть полезно.

public static class CrmUtils
{
    public static OptionSetValue OptionSetValueOrNull(int? value)
    {
        return value == null ? null : new OptionSetValue(value);
    }

    public static EntityReference EntityReferenceOrNull(Guid? id, string entityName)
    {
        return id == null ? null : new EntityReference(entityName, id);
    }
}

В качестве альтернативы, вы можете изменить их как методы расширения либо для Entity, либо для AttributeCollection, например,

entity.SetEntityReference(nullableId, "account");
entity.Attributes.SetEntityReference(nullableId, "account");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...