我正在开发一个通用 OData 提供程序,以对抗我们在这里拥有的自定义数据提供程序。Thsi 是完全动态的,因为我向数据提供者查询它知道的表。到目前为止,我有一个基于 OData 示例代码的基本存储结构。
我的问题是:OData 支持查询并希望我提交 IQueryable 实现。在低端,我没有任何查询支持。不是开玩笑 - 提供者返回表并且不支持 WHERE 子句。性能在这里不是问题 - 表很小。可以在 OData 提供程序中对它们进行排序。
我的主要问题是这个。
- 我提交了一条 SQL 语句来获取表中的数据。结果是某种 ADO.NET 数据阅读器。
- 我需要为这些数据公开一个 IQueryable 实现,以便以后过滤。
知道如何最好地触摸它吗?仅 .NET 3.5(一段时间未计划 4.0)。我正在认真考虑为每个表(发出字节码)创建动态 DTO 类,以便我可以使用标准 LINQ。现在我每个条目都使用一个字典(效率不太高),但我看不到基于它们进行过滤/排序的真正方法。