У меня очень большой набор данных (1,000,000+ клиентов) в наборе данных на удаленном компьютере. Эти данные хранятся в плоском файле и отображаются по номеру клиента, который является смещением в файле. Я хочу предоставить доступ к OData для этой коллекции, но я хочу только предложить возможность читать один объект.Предоставление oData Доступ к гигантскому набору данных без БД
Права доступа мудр легко получить WCF, чтобы ограничить его выделить читает со следующим:
config.SetEntitySetAccessRule("Customer", EntitySetRights.ReadSingle);
У меня есть проблема в том, что я вынужден вернуть IQueryable интерфейс, который, кажется, требует, чтобы я понял, весь набор данных. Есть ли что-то, что мне не хватает, или есть способ собрать только записи, необходимые при оценке IQueryable, которые, как я знаю (из-за разрешений oData), потребуют одной записи?
Это в стороне, но насколько широки ваши ряды? Я предполагаю, что этот набор данных будет тривиальным для загрузки в память (500 МБ?), Что вы должны учитывать в своем сценарии. Файловый ввод-вывод - огромный успех; большинство баз данных смягчают это, сохраняя горячие записи в памяти. –