Lightswitch预处理查询

时间:2015-07-01 02:06:16

标签: visual-studio-lightswitch

我与JobJobStatus之间存在关系。作业属于项目,作业必须有项目。我正在扩展功能,用户可以在该项目的作业中选择他们可以拥有的作业状态。

我能够通过拥有映射表并使用预处理查询来实现这一目标。

  partial void IsStatusInProject_PreprocessQuery(int? ProjectId, ref IQueryable<JobStatus> query)
        {
             query = query.Where(x => x.ProjectJobStatusCollection.Any(y => y.Project.Id == ProjectId));
        }

我已经为该作业的下拉列表应用了一个选项,在该列表中,它获取了所选的状态。但是,如果他们不选择任何内容,我想恢复所有状态。

如何扩展预处理查询呢?

1 个答案:

答案 0 :(得分:0)

您想要检查ProjectId的ProjectJobStatus计数是否为零(0)不应用where子句。

像这样:(松散的假)

If (ProjectJobStatus.Where(y => y.ProjectJobStatusCollection.Any(y => y.Project.Id == ProjectId))).Count > 0) {
    query = query.Where(x => x.ProjectJobStatusCollection.Any(y => y.Project.Id == ProjectId));
}
// else { // Do nothing. }

再一次,这部分是伪代码,我没有费心去测试它或检查我的语法!!