Lightswitch如何创建和使用查询中的全局值.docx_第1页
Lightswitch如何创建和使用查询中的全局值.docx_第2页
Lightswitch如何创建和使用查询中的全局值.docx_第3页
Lightswitch如何创建和使用查询中的全局值.docx_第4页
Lightswitch如何创建和使用查询中的全局值.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何创建和使用查询中的全局值7如何创建和使用查询中的全局值Create and Use Global Values In a QueryVisual Studio LightSwitch 具有一种功能强大的查询子系统,它使开发人员可以构建自己的应用程序需要,以便向最终用户显示业务数据的查询。开发人员可以轻松地模型将进行筛选和排序结果的查询。他们也可以在筛选器中使用的模型参数。设计器福尔斯短的情况下,开发人员可以放到代码和使用 LINQ 查询以获取工作建立。阅读更多关于如何使用代码查询扩展。常常上来的业务应用程序中的一种情况 (和可能大多数应用程序) 是能够使用上下文信息,我们称之为全球的值在 LightSwitch,筛选数据时。例如,我想我的屏幕显示 SalesOrders 今天被创建。我想要显示有 30 天的发票或过期。Visual Studio LightSwitch,可以轻松地通过查询设计器在查询中使用一些内置的全局值。它还允许您添加您自己的全局值。全局值非常强大,在这篇文章我会告诉你如何使用内置的以及如何添加您自己。在查询中使用全局值正如前面所述,LightSwitch 定义了一些内置的全局值,可以使用框中。这些值基于日期和日期时间类型: Now Today End of Day Start of Week End of Week Start of Month End of Month Start of Quarter End of Quarter Start of Year End of Year为了使用这些全局值之一,创建一个名为 CreatedDate 属性的类型日的订单表。在订单表中添加新的查询,通过单击顶部的设计器的添加查询按钮,或右键单击解决方案资源管理器中的 SalesOrders 表,选择添加查询。名称SalesOrdersCreatedToday查询。添加一个筛选器,并为该属性选择 CreatedDate。要访问全局值列表中,您需要在筛选器中选择不同类型的正确值。为此,下拉组合框中,在它的 abl 图标,然后选择全球。由于有全局值定义的日期和日期时间类型,随时对这些类型的属性创建一个筛选器,此组合框中的全局选项才可用。对于没有定义的全局值的类型,不会显示全球选项。现在,您选择了全球,您可以选取从内置值的值。打开右侧的组合框中,选择今天。现在,您有一个查询,返回只执行查询的天被创建的 SalesOrders。在屏幕上显示查询结果,创建一个新的屏幕,名为NewOrders,并在屏幕数据选择器中,选择 SalesOrdersCreatedToday 查询。当您打开该屏幕时,将显示只今天被创建的 SalesOrders。注: 日期和日期时间属性以不同的方式工作因为日期时间还存储了时间。如果您正在使用的属性的日期时间类型,所以使用查询筛选器 MyDateTime = 今天 不能像它执行日期类型。今天真是指 System.DateTime.Now.Date 这相当于 12: 00: 00 AM 的当前日期。对于日期时间,今天真的意味着开始的一天。所以为了创建使用 DateTime 属性等效的查询,您需要使用介于运算符,如下所示。定义全局值LightSwitch 提供了内置的全局值使很多的情况下,虽然有当开发人员要在他们的应用程序中创建自己使用的全球价值的时代。我给了上面的示例发票,是 30 天或更过期,可能是那些日子之一。想象我有发票表已关闭布尔型属性和调度日期属性。我想要定义一个命名为 OverdueInvoices,返回未被封闭的所有发票的查询和跌幅超过 30 天。创建第一个筛选器,这是很容易的:但不能做的第二个筛选器定义使用内置的全局值。没有说今天 30值选择器中的一种方法。于是,我会创建一个新的全球值,名为ThirtyDaysAgo。(您可以也单击此筛选器代码到查询中的属性窗口中的编辑附加的查询代码链接。但一些值用于如此多的时候,该应用程序的不同部分你不想写代码,每次您使用它们。若要定义一个新的全局值,您需要打开您的项目使用 xml 编辑器中的 ApplicationDefinition.lsml 文件并手动添加的 xml 代码段。没有足够的时间来创建可视设计器中的,在此方案中,以便定义新的全局值的唯一方法是手动编辑 xml。如果您不熟悉编辑 xml,您可能希望创建 ApplicationDefinition.lsml 文件的备份副本,你错了,不再能够加载设计器的情况下。若要打开该文件,单击顶部的解决方案资源管理器视图选择器按钮并选择查看文件。在数据文件夹中,你会发现一个名为ApplicationDefinition.lsml文件。用鼠标右键单击该文件并选择打开 ,选择XML (文本) 编辑器。这将打开 LightSwitch 设计器使用您的应用程序模型的 xml。直接根据 xml 文档的根ModelFragment的元素,从下面的代码片断添加的突出显示的 GlobalValueContainerDefinition 元素: 您可以命名您的 GlobalValueContainerDefinition 任何您所希望的它不需要被命名为 GlobalDates。此外,您可以定义多个 GlobalValueDefinition GlobalValueContainerDefinition 中。现在唯一剩下的就此全局值是编写返回请求的值的代码。要执行此操作,在解决方案资源管理器中右键单击普通的项目并选择添加 Class。命名类完全相同的名称,如您命名 GlobalValueContainerDefinition xml 元素以上,即GlobalDates。类必须包含在您的应用程序的根命名空间。因此,如果您的应用程序被命名为ContosoSales,则类的完整名称必须是ContosoSales.GlobalDates。现在,对于每个 GlobalValueDefinition 元素,您添加到 xml,添加共享或静态方法,具有相同的名称,并返回类型为 GlobalValueDefinition。这些方法不能采取任何参数。这里是我的 ThirtyDaysAgo 的执行:VB:Namespace ContosoSales The name of your application Public Class GlobalDates The name of your GlobalValueContainerDefinition Public Shared Function ThirtyDaysAgo() As Date The name of the GlobalValueDefinition Return Date.Today.AddDays(-30) End Function End ClassEnd NamespaceC# 中:using System;namespace ContosoSales / The name of your application public class GlobalDates / The name of your GlobalValueContainerDefinition public static DateTime ThirtyDaysAgo() / The name of the GlobalValueDefinition return DateTime.Today.AddDays(-30); 现在,全球价值是定义并可供使用。接下来,我们需要挂接到此新定义的全局值 OverdueInvoices 查询。因为我们手动编辑 ApplicationDefinition.lsml 文件,设计器需要重新捡起新的模型定义加载。要做到这一点,请切换到使用解决方案资源管理器顶部的视图选择器按钮逻辑视图。右击顶级应用程序节点并选择重新加载设计器。打开 OverdueInvoices 查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论