本课程介绍如何将“计算属性”添加到 LightSwitch 应用程序中的数据实体。
添加计算的属性
业务应用程序的大多数数据存储在数据库或其他数据源中,但您可能想要为用户提供更多的数据。执行此操作的一种方法是使用提供基于计算的数据的计算属性。可以在屏幕上显示数据,但它未存储在数据库中。
订单总额是为其编写代码,以一起添加行项目金额、税及装运的计算属性的一个示例。
添加计算的属性
在**“解决方案资源管理器”中双击“订单”**。
在**“数据设计器”中,单击“<添加属性>”**,然后键入 OrderTotal。
在**“类型”列中,选择“货币”**。
请注意,在**“属性”**窗口中,已选定 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 实体。对于每个行项目,代码将“单价”字段乘以“数量”字段,并在结果变量中存储的累积值。代码的最后一行向累积总额添加“运费”字段的值。您可以通过检查“运费”字段是否有值来改进此代码。正如当前编写的内容,如果“运费”字段为空,那么可能导致异常。
计算属性不必涉及数学计算。你还可以使用计算属性连接两个字符串。例如,如果您的实体有“名字”字段和“姓氏”字段,那么您可以创建“全名”字段同时显示姓名。在此情况下,FullName_Compute方法的代码将类似于下面的示例。
result = FirstName & " " & LastName
result = FirstName + " " + LastName
对于名字“Howard”和姓氏“Snyder”,屏幕上将显示“全名”为“Howard Snyder”。
您还可以创建一个使用其他计算属性的值的计算属性。例如,您可以将“税”属性添加到“订单”实体,然后编写代码,基于计算的“OrderTotal”属性的百分比来计算税。
计算属性也有一些限制。他们不能在查询中使用,并且最终用户不能进行排序或搜索计算所得的列。
后续步骤
在下一课中,您将学习如何创建数据实体间的关系。
下一课:定义关系