У меня много существующего кода, который использует сырой ADO.NET (DbConnection, DbDataReader и т. Д.). Я хотел бы перейти к использованию LINQ to SQL для нового кода, но пока поместите существующий и новый код в единый набор классов репозитория.
У меня есть одна проблема: я хотел бы, чтобы классы репозитория представляли наборы результатов в виде IQueryable <>, который я получаю бесплатно с помощью LINQ to SQL. Как мне обернуть мои существующие наборы результатов DbDataReader в IQueryable? Нужно ли реализовывать IQueryable поверх DbDataReader с нуля?
Примечание. Мне известно о LINQ to DataSet, но я не использую DataSets из-за проблем с масштабированием памяти, поскольку наборы результатов, с которыми я имею дело, могут быть довольно большими (порядка 1000 с). Это означает, что реализация IQueryable поверх DbDataReader также должна быть эффективной (т.е. не кэшировать результаты в памяти).