是否有可以用作容器的IQueryable实现?

时间:2012-03-16 12:14:08

标签: c# .net

我有一个MVC3程序,我想在其中查询数据库,然后根据返回的IQueryable但查询构建一个新的IQueryable对象,该对象将包含原始IQueryable中的项目但稍微后处理。

我当然可以在第一时间构建一个更好的查询,但问题是我需要的后期处理在SQL中并不容易,但我会在C#中做到这一点。

所以实际上我需要一个类似容器的类来实现IQueryable,我不喜欢自己实现它的想法。

是否有一个实现IQueryable的现成课程?

1 个答案:

答案 0 :(得分:2)

你的问题很奇怪。 如果要预处理所有结果,则必须首先加载它们并进行预处理。然后,它们将存储在IEnumerable中。这似乎是一个好主意,如果有合理数量的结果,并且您不需要服务器排序等。

另一种方法是将Select附加到IQueryable并在其中进行一些处理而不加载实际数据(处理将在服务器端进行)。但在这种情况下,您使用的ORM实现非常有限。

接下来,我会做一些扩展处理逻辑,仍然通过IQueryable得到结果是将所有处理逻辑放入SQL服务器中的表值函数(或视图),然后将其映射到ORM,并查询它

IQueryable的整个想法是它没有数据,它只是在枚举时执行的DB查询的定义。