从WCF数据服务到Silverlight应用程序的动态查询数据?

时间:2011-08-08 22:37:36

标签: c# sql-server silverlight wcf-data-services

我有一个Silverlight应用程序,其中包含一个列出多列中多个值的窗口。第一列包含要从数据库中检索的字段,第二列包含表名。

可以从第一列中选​​择多个字段,并且只能从第二列中选择一个字段。因此,我们的想法是构建一个可以从多个表中选择多个列的查询(假设每个表的列名相同)。

我的问题是如何将这些值传递给WCF数据服务方法并将无类型数据集返回给调用的Silverlight应用程序?在运行时,我无法知道要获取的列或要使用的表。这意味着我无法定义用于将数据从WCF数据服务返回到Silverlight的类。

关于如何实现这一目标的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

Silverlight没有数据表或数据集构造。但是,您可以使用嵌套列表伪造它。这个人把Silverlight数据表代码放在一起,还展示了如何通过WCF序列化和发送它: http://blogs.telerik.com/blogs/posts/10-01-22/how_to_serialize_your_datatable_to_silverlight_using_wcf_service.aspx

至于将查询提供给服务器,您有几个选择。您可以动态构建linq表达式树(与domaindatasource在封面下的方式相同),并使用它来直接从客户端进行查询。您还可以将序列化形式的搜索参数发送到服务器并在那里构建查询。同样,如果你想使用LinqToEntities进行查询,你要么必须构建linq表达式树,要么你可以去旧学校并建立一个SQL查询。如果你使用SQL,请确保防止SQL注入。

我还建议您投票选择要添加到silverlight的数据集/数据表功能,这样可以使您的解决方案更容易开发。你可以投票给它here