Я пытаюсь написать итератор данных для SQL, похоже, что лучший подход - это подготовить динамический sql для этой проблемы.
Я хочу, чтобы итератор поддерживал разбиение на страницы, сортировку и фильтрацию данных и в идеале не выполнял бы итерации по копии памяти, но даже не выбирал данные в первую очередь, возможно, LINQ to SQL или Entity Framework могли бы обеспечить нечто подобное
Самое смешное, что я уже написал хороший итератор данных для SQLCE для всех баз данных, он поддерживает SqlCeResultSet и концепцию ExecuteResultSet, которая делает это очень простым, но это еще не сделано для полнофункционального серверного продукта баз данных. Я могу себе представить, почему это в основном как встроенная БД, вы можете заблокировать ее для однопользовательского режима, а также уменьшена языковая поддержка, что делает его более легким.
Возможно, я просто слишком устал или недостаточно образован, чтобы понять приемлемый способ сделать это. Я думаю, что использование SQL Data Reader может быть идеальным решением, но если я не ошибаюсь, вам нужно держать соединение открытым, пока вы выполняете итерацию, что, по-видимому, не имеет особого смысла, другой подход состоит в том, чтобы просто выбрать страницу данных, чтобы вернуть ее и предложить итератор для этой коллекции, когда вы дойдете до конца, она свернет следующую страницу, это сработает, но означает, что мне нужно подготовить множество конструкций SQL для поддержки сортировки, фильтрации и разбиения на страницы, но в конце концов это может быть решение.
Спасибо