LINQ Provider提供RESTful服务

时间:2010-06-27 16:54:06

标签: linq custom-linq-providers

我正在为RESTful服务编写自定义LINQ提供程序。服务中的一些调用返回摘要标题,包括记录总数,页面大小和返回页面。我需要一种方法来返回这些数据。鉴于此查询:

var foo = from x in ctx.MyQueryableThingie
          select x;

上面的“foo”变量变为IQueryable<MyQueryableThingie>。返回这些摘要数据而不将其附加到集合的每个成员的最佳方法是什么?我已经考虑过将它们作为Context的属性,这样每个查询都会更新属性,但我不确定这是最好的模式。

2 个答案:

答案 0 :(得分:0)

您好,您应该查看我的项目LinqToAnything,这样就很容易做到这一点。

答案 1 :(得分:-1)

我想将它存储在queryProvider中。那种方式您将确保每个实例都具有该实例执行的查询的属性(在处理静态字段时很难)。当然,从语法的角度来看,这些信息是QueryResult的一部分,所以你可以去做一些额外的工作并实现一个

IMyCustomQueryResult<T> : IEnumarable<T>

但这可能会让人大惊小怪, Queryprovider可能是存储它的最佳方式,因为它是进行解析和执行的查询提供程序,因此可能是存储信息的地方(并且可以从IQueryable获取) 但那只是我的想法。 祝你好好实施。 干杯卢克