《基于lightswitch的应用程序中的当前用户的筛选数据》由会员分享,可在线阅读,更多相关《基于lightswitch的应用程序中的当前用户的筛选数据(3页珍藏版)》请在金锄头文库上搜索。
1、1基于 LightSwitch 的应用程序中的当前用户的筛选数据基于 LightSwitch 的应用程序中的当前用户的筛选数据Filtering data based on current user in LightSwitch apps在许多应用程序,您需要只是相关的记录中的特定用户的数据进行筛选。例如,个人信息管理器应用程序可能只希望用户查看自己的任务并不是其他用户的任务。这里是演练的方式,您可以设置这样的 Visual Studio LightSwitch 中筛选的数据。我将首先创建任务表有两个字段: 一个用于任务描述,另一种存储创建该任务的用户的用户名。接下来,我需要编写一些代码以便每
2、当创建任务时,它将自动拥有它是 CreatedBy 字段设置为当前用户。要做到这一点,我可以选择创建方法,写代码下拉在表设计器上使用。2基于 LightSwitch 的应用程序中的当前用户的筛选数据代码如下:partial void Task_Created() this.CreatedBy = this.Application.User.Name; 现在我们在数据过滤步骤。我真正想做的是有 所有 查询任务将按照当前用户进行过滤。因此,即使我的任务模型的新查询它将会自动获得此筛选的行为。这样,只有一次编写此代码,它将应用每当任务进行查询。LightSwitch 提供内置的查询返回的表中的所有实
3、例的每个表。此查询的名称是 表名_All。为该表的所有其它查询基于所有查询。因此,如果我可以修改的行为的所有的查询,然后每个其他查询查询相同的表,也将获得这种行为。LightSwitch 恰好就是可修改的所有查询的默认行为。这可以通过 PreprocessQuery 方法。此方法也是可以通过编写代码的下拉型的。3基于 LightSwitch 的应用程序中的当前用户的筛选数据PreprocessQuery 方法允许开发人员来修改查询,它在执行前。对我来说,我想添加到它的限制,以便只能由当前用户创建的任务返回。partial void Tasks_All_PreprocessQuery(ref IQueryable query) query = query.Where(t = t.CreatedBy = this.Application.User.Name);就是我要做。现在,每当任务作出任何查询它将添加此限制。