我在远程计算机上的数据集中有一个非常大的数据集(1,000,000 多个客户)。此数据存储在一个平面文件中,并通过客户编号查找,该客户编号是文件中的偏移量。我想提供对这个集合的 oData 访问,但我只想提供读取单个实体的能力。
权限方面,很容易让 WCF 使用以下内容将其限制为单次读取:
config.SetEntitySetAccessRule("Customer", EntitySetRights.ReadSingle);
我遇到的问题是我被迫返回一个 IQueryable 接口,这似乎需要我收集整个数据集。是否有我遗漏的东西,或者有没有办法只收集评估 IQueryable 时所需的记录,我知道(由于 oData 权限)将需要单个记录提取?