Поделиться через


Добавление вычисляемых свойств

В рамках данного занятия рассматривается добавление вычисляемого свойства в сущность данных в приложении LightSwitch.

Добавление вычисляемого свойства

Большая часть данных для бизнес-приложения хранится в базе данных или в другом источнике данных, однако может возникнуть необходимость в предоставлении пользователям дополнительных данных.Для этого можно воспользоваться вычисляемым свойством, которое предоставляет данные на основе вычислений.Данные могут отображаться на экране, но они не хранятся в базе данных.

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

Добавление вычисляемого свойства

  1. В Обозревателе решений дважды щелкните элемент Orders.

  2. В Конструкторе данных выберите команду <Добавить свойство>, а затем введите значение OrderTotal.

  3. В столбце Тип выберите значение Money.

    Обратите внимание, что в окне Свойства выбрано свойство IsComputed.

  4. В окне Свойства щелкните по ссылке Изменить метод.

    Откроется Редактор кода, в котором будет отображаться метод OrderTotal_Compute.

  5. Добавьте в метод OrderTotal_Compute следующий код.

    For Each Order_Detail In Order_Details
        result = result + (Order_Detail.UnitPrice * Order_Detail.Quantity)
    Next
    result = result + Freight
    
    foreach (Order_Detail od in Order_Details) {
    
        result = result += (od.UnitPrice * od.Quantity);
    }
    result = result + Freight.Value;
    

    При отображении заказа на экране этот код будет выполнен для вычисления итоговой суммы заказа.

Подробный обзор

В рамках данного занятия было рассмотрено добавление вычисляемого свойства в сущность для расчета значения.Возможно, вы обратили внимание, что при добавлении поля «OrderTotal» в сущность «Заказы» поле был отмечено как обязательное.В окне Свойства автоматически выбирается параметр IsComputed.Вычисляемые поля для сущностей из подключенного источника данных всегда являются обязательными и вычисляемыми.

В примере кода используется конструкция For… Each, которая осуществляет циклический перебор по свойству сущности Order_Detail.Для каждой позиции строки код умножает значение поля «UnitPrice» на значение поля «Quantity» и сохраняет накопленный итог в результирующей переменной.В последней строке кода в накопленный итог добавляется значение поля «Freight».Этот код можно улучшить путем проверки наличия значения в поле «Freight».В настоящее время, если поле «Freight» не содержит значения, то может быть вызвано исключение.

В вычисляемых свойствах не используются математические расчеты.Вычисляемое свойство также может использоваться для слияния двух строк.Например, если сущность имеет поля «FirstName» и «LastName», можно создать поле «FullName» для совместного отображения обоих полей.В данном случае код для метода FullName_Compute будет похож на код, приведенный в следующем примере.

result = FirstName & " " & LastName
result = FirstName + " " + LastName

Если поле «FirstName» имеет значение «Говард», а поле «LastName» – значение «Снайдер», поле «FullName» будет отображаться на экране как «Говард Снайдер».

Можно также создать вычисляемое свойство, где будут использоваться значения других вычисляемых свойств.Например, можно добавить свойство «Tax» в сущность «Orders», а затем написать код для расчета налога на основе процентной доли вычисляемого свойства «OrderTotal».

Вычисляемые свойства также имеют некоторые ограничения.Они не могут использоваться в запросе, конечные пользователи не могут выполнять сортировку или поиск по вычисляемому столбцу.

Следующие шаги

В следующем занятии будет рассмотрено создание отношений между сущностями данных.

Следующий урок: Определение отношений

См. также

Задачи

Практическое руководство. Добавление вычисляемого поля

Другие ресурсы

Работа с данными в LightSwitch (интерактивный учебник)