# DbDataReader Streaming Serialization

> DbDataReader sonuçlarını DataTable veya DTO koleksiyonu oluşturmadan typed getter'lar üzerinden doğrudan JSON/XML akışına yazan, şema bilgisini bir kez hazırlayan C# serileştirme katmanı.

- Author: Muhammet Ali Köker
- Language: tr
- Canonical: https://alikoker.com.tr/db-reader-streaming-serialization-csharp
- Translation: https://alikoker.com.tr/en/db-reader-streaming-serialization-csharp
- Published: 2020-07-03T15:27:00+03:00
- Modified: 2026-08-27T10:36:29+03:00
- Verified: 2026-08-27T10:36:29+03:00
- Type: project

Bu yazılımın çıkış noktası serileştiricinin hızından önce veri yolundaki gereksiz ara katmanlardı. Büyük bir sorgu sonucunu önce `DataTable`, `List<DTO>` veya sözlük koleksiyonuna doldurup sonra yeniden dolaşmak, hem allocation miktarını hem de GC baskısını artırıyor. Burada `DbDataReader` doğrudan `Utf8JsonWriter` ya da `XmlWriter` ile buluşturuluyor.

Sütun adı ve veri tipi gibi değişmeyen bilgiler ilk satırdan önce hazırlanıyor. JSON alan adları önceden encode ediliyor; mümkün olan CLR tiplerinde typed getter kullanılıyor. `DbRowView` ise her satır için yeni bir wrapper üretmek yerine aynı görünümü ilerleyen reader üzerinde yeniden kullanıyor. Bunun karşılığında sözleşme nettir: row view saklanacak kalıcı bir snapshot değildir.

Büyük LOB değerlerinde scalar fast path zorlanmıyor; provider'ın `GetStream` veya `GetTextReader` yoluna geçmek daha doğru. Aynı “metadata bir kez, tekrar eden satır yolu kısa” ilkesi kontrollü CSV/GZip verisinde [CSV Enumerable](/csv-enumerable-csharp) projesinde başka biçimde uygulanıyor.

Teknik çözümleme: [DbDataReader ile Akış Tabanlı JSON ve XML Serileştirme](/dbdatareader-akiskan-json-xml-serilestirme)  
GitHub: [GitHub](https://github.com/alikoker/db-reader-streaming-serialization-csharp)  
Zenodo: [Zenodo](https://zenodo.org/records/22117281)  
DOI: [DOI](https://doi.org/10.5281/zenodo.22117281)

## Bu Çalışmaya Atıf

Köker, M. A. (2020). DbDataReader Streaming Serialization. alikoker.com.tr. https://alikoker.com.tr/db-reader-streaming-serialization-csharp

- BibTeX: https://alikoker.com.tr/db-reader-streaming-serialization-csharp.bib
- RIS: https://alikoker.com.tr/db-reader-streaming-serialization-csharp.ris
- CSL-JSON: https://alikoker.com.tr/db-reader-streaming-serialization-csharp.csl.json
