Добавление вычисляемых свойств
В рамках данного занятия рассматривается добавление вычисляемого свойства в сущность данных в приложении LightSwitch.
Добавление вычисляемого свойства
Большая часть данных для бизнес-приложения хранится в базе данных или в другом источнике данных, однако может возникнуть необходимость в предоставлении пользователям дополнительных данных.Для этого можно воспользоваться вычисляемым свойством, которое предоставляет данные на основе вычислений.Данные могут отображаться на экране, но они не хранятся в базе данных.
Итог заказа является примером вычисляемого свойства, для которого создается код, суммирующий построчно расчетные периоды, налоги и отгрузки.
Добавление вычисляемого свойства
В Обозревателе решений дважды щелкните элемент Orders.
В Конструкторе данных выберите команду <Добавить свойство>, а затем введите значение OrderTotal.
В столбце Тип выберите значение Money.
Обратите внимание, что в окне Свойства выбрано свойство IsComputed.
В окне Свойства щелкните по ссылке Изменить метод.
Откроется Редактор кода, в котором будет отображаться метод OrderTotal_Compute.
Добавьте в метод 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».
Вычисляемые свойства также имеют некоторые ограничения.Они не могут использоваться в запросе, конечные пользователи не могут выполнять сортировку или поиск по вычисляемому столбцу.
Следующие шаги
В следующем занятии будет рассмотрено создание отношений между сущностями данных.
Следующий урок: Определение отношений
См. также
Задачи
Практическое руководство. Добавление вычисляемого поля