代码之家  ›  专栏  ›  技术社区  ›  Dave Swersky

从linq提供程序到restful服务

  •  0
  • Dave Swersky  · 技术社区  · 16 年前

    我正在为restful服务编写一个定制linq提供者。服务返回摘要头中的某些调用,包括记录总数、页面大小和返回页面。我需要一个干净的方法来返回这些数据。给定此查询:

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

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

    2 回复  |  直到 16 年前
        1
  •  0
  •   mcintyre321    11 年前

    嗨,你应该看看我的项目 LinqToAnything 这样做很容易。

        2
  •  -1
  •   luckyluke    16 年前

    我想把它放在查询器里。这样,您将确保每个实例都具有该实例执行的查询中的属性(在处理静态字段时这将很困难)。当然,从语法的角度来看,这些信息是QueryResult的一部分,因此您可以进行一些额外的工作并实现

    IMyCustomQueryResult<T> : IEnumarable<T>
    

    但那可能会太麻烦了, QueryProvider可能是存储信息的最佳方式,因为它是执行解析和执行的查询提供者,所以这可能是存储信息的地方(而且它无论如何都可以从IQueryable获得) 但那只是我的想法。 不管怎样,祝你执行顺利。 欢呼路加