带参数的lightswitch查询

时间:2012-08-22 09:56:00

标签: c# silverlight parameters visual-studio-lightswitch

我有一个列表,我选择一个项目。基于此项目的某些字段,我想过滤另一个控件中的选项列表。

像这样的人:

Select * from choiceItems Where choiceItem.ID = (Select ID from anotherTable where anotherTable.ID = selectedItem.ID)

问题是可能有更多的ID返回。也许我想要所有带有ID = {3,2,1}等的choiceItems。

我无法在服务器上预处理查询,因为我的参数取决于列表中的选定项目。如果我尝试在查询编辑器中过滤结果,我只能指定参数,该参数只能是单个值(f.e.ID = 2)。

我如何在silverlight中做到这一点?

另外,另一个不相关的小问题:在lightswitch中加载自定义控件时是否可以显示等待光标(现在它只显示一个灰色区域,直到加载数据和控件)。

3 个答案:

答案 0 :(得分:0)

  

从choiceItems中选择*其中choiceItem.ID =(从中选择ID)   anotherTable where anotherTable.ID = selectedItem.ID)

这是一个多对多的场景,你需要用查询参数制作一个WCF RIA服务,很多工作只是为了过滤。另一种方法是使这些表格相关。

答案 1 :(得分:0)

即使从列表中选择了查询参数,您也应该能够预处理查询。然后,您可以使用LINQ返回choiceItems的子集,或者根据所选参数跳过LINQ,它将返回所有choiceItems

我在回答SO问题时给出了一个详细的例子:

Is there a way to create a search screen in Lightswitch based on a dropdown

答案 2 :(得分:0)

没有确切的语法,但应该是这样的:

首先使用LINQ获取ID

var FilterOnThisId=this.Query1.Where(x=>x.ID==selectedItem.ID).FirstOrDefault();

然后查询你想要的收藏品

var filtedItems=this.Query2.Where(x=>x.ID==FilterOnThisId);