如何通过WCF数据服务公开相关数据?

时间:2013-02-01 04:00:32

标签: odata wcf-data-services

我一直在阅读Alex D. James三年前的博客文章:

http://blogs.msdn.com/b/alexj/archive/2010/02/24/creating-a-data-service-provider-part-8-relationships.aspx

这是一篇关于通过WCF数据服务公开自定义数据的精彩博客系列。在题为“关系”的第8篇文章中,他谈到了如何描述和公开相关数据。一位评论者指出的帖子的问题在于他是在记忆中做到的,但没有解释如何动态提供相关数据。

使用他的例子,我想通过数据库动态获取我的“产品”。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您需要编写自定义IQueryable实现。 WCF DS Server将构造一个描述查询的LINQ查询(包括对所有属性的所有扩展和访问)。使用自定义实现,您可以将此类查询转换为您想要的任或者,您可以覆盖查询评估(GetEnumerator和枚举器执行)以从某处检索相关数据。

请注意,这绝对不是一件轻而易举的事。我写了一系列博客文章,介绍了生成的LINQ表达式树以及每个部分的含义。您需要在代码中至少部分识别这些以实现相关属性的延迟加载。 http://blogs.msdn.com/b/vitek/archive/2010/02/25/data-services-expressions-part-1-intro.aspx