0

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

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

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

4

2 回答 2

0

嗨,你应该看看我的项目LinqToAnything ,这让你很容易做到这一点。

于 2014-08-07T11:09:49.227 回答
-1

我会说将它存储在 queryProvider 中。这种方式您将确保每个实例都具有该实例执行的查询的属性(这在处理静态字段时会很困难)。当然,从句法的角度来看,此信息是 QueryResult 的一部分,因此您可以付出一些额外的努力并实现一个

IMyCustomQueryResult<T> : IEnumarable<T>

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

于 2010-06-27T17:25:31.390 回答