私は生のADO.NET(DbConnection、DbDataReaderなど)を使用する既存のコードをたくさん持っています。私は新しいコードのためにLINQ to SQLを使うことに変わりたいと思いますが、今のところ既存のコードと新しいコードをリポジトリクラスの統一されたセットの背後に置いています。DbDataReaderにIQueryableの実装がありますか?
私が持っている問題の1つは、次のとおりです。リポジトリクラスがLINQ to SQLで無料で入手できるIQueryable <として結果セットを公開したいと思います。既存のDbDataReader結果セットをIQueryableにラップするにはどうすればよいですか?最初からDbDataReaderにIQueryableを実装する必要がありますか?
メモLINQ to DataSetは認識していますが、メモリスケールの問題でDataSetsを使用していません。対処する結果セットが非常に大きくなる可能性があります(1000sのオーダー)。これは、DbDataReaderを実装したIQueryableも効率的である必要があることを意味します(つまり、結果をメモリにキャッシュしません)。
- 1つのオプション(まだ怠惰を保持していること(レコード=> BuildPerson(レコード))など - あなたにIEnumerableを与える –
ニース...と私のヘルパークラスは一般的なので、次のようになります: (Record => RecordToObject(record)) –
DSO