添加计算属性

本课程介绍如何将“计算属性”添加到 LightSwitch 应用程序中的数据实体。

添加计算的属性

业务应用程序的大多数数据存储在数据库或其他数据源中,但您可能想要为用户提供更多的数据。执行此操作的一种方法是使用提供基于计算的数据的计算属性。可以在屏幕上显示数据,但它未存储在数据库中。

订单总额是为其编写代码,以一起添加行项目金额、税及装运的计算属性的一个示例。

添加计算的属性

  1. 在**“解决方案资源管理器”中双击“订单”**。

  2. 在**“数据设计器”中,单击“<添加属性>”**,然后键入 OrderTotal。

  3. 在**“类型”列中,选择“货币”**。

    请注意,在**“属性”**窗口中,已选定 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 实体。对于每个行项目,代码将“单价”字段乘以“数量”字段,并在结果变量中存储的累积值。代码的最后一行向累积总额添加“运费”字段的值。您可以通过检查“运费”字段是否有值来改进此代码。正如当前编写的内容,如果“运费”字段为空,那么可能导致异常。

计算属性不必涉及数学计算。你还可以使用计算属性连接两个字符串。例如,如果您的实体有“名字”字段和“姓氏”字段,那么您可以创建“全名”字段同时显示姓名。在此情况下,FullName_Compute方法的代码将类似于下面的示例。

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

对于名字“Howard”和姓氏“Snyder”,屏幕上将显示“全名”为“Howard Snyder”。

您还可以创建一个使用其他计算属性的值的计算属性。例如,您可以将“税”属性添加到“订单”实体,然后编写代码,基于计算的“OrderTotal”属性的百分比来计算税。

计算属性也有一些限制。他们不能在查询中使用,并且最终用户不能进行排序或搜索计算所得的列。

后续步骤

在下一课中,您将学习如何创建数据实体间的关系。

下一课:定义关系

请参见

任务

如何:添加计算字段

其他资源

在 LightSwitch 中使用数据(指导教程)